springboot mybatis-plus 对接 sqlserver 数据库时间类型datetime date 转换实体类 LocalDateTime 报错 解决方案

问题点 :
在对接sqlserver 什么都配置好了
在 做查询语句时 框架报错 :

Error attempting to get column ‘SDate’ from result set. Cause: java.sql.SQLException: Error
; uncategorized SQLException; SQL state [null]; error code [0]; Error; nested exception is java.sql.SQLException: Error

在这里插入图片描述
研究了 几个小时 找到了解决方案

框架版本 :
sprin boot 2.0 +
mybatis-plus 3.3.1
mybatis-plus 代码生成器 mybatis-plus-generator: 3.3.2

更改 SQL Server JDBC驱动 依赖 可以解决

    // 报错时 引用的是这个
    //    <dependency>
    //        <groupId>com.microsoft.sqlserver</groupId>
     //       <artifactId>sqljdbc4</artifactId>
   //         <version>4.0</version>
    //    </dependency>

    //最后改成了 这个 就不报错了
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>8.4.1.jre8</version>
        </dependency>

SQL Server JDBC驱动中
sqljdbc和sqljdbc4 应该是有区别的
大家想了解 百度就好

版本 我建议大家注意一下 因为 搜到 很多关于 mysql 数据库遇到这个问题的

我按照mysql 数据的解决方案

  1. 重写类
  2. 升级mybatis-plus 至 3.5.0+
  3. 把实体类型 改成 Date 弃用 LocalDateTime

只有第三种好使
但是我又想用 LocalDateTime
所以我使用了 更改SQL Server JDBC 驱动 依赖

下面再分享一下 我查询到的 mysql 的解决方案
如果遇到 mysql 的这要问题 可以做个参考
本人没尝试过

方案一:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

方案二:
重写类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重写类 代码:

package com.erp.yt.common.api.entities.base;

import org.apache.ibatis.type.LocalDateTimeTypeHandler;
import org.springframework.stereotype.Component;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDateTime;
/**
 * User: Json
 * <p>
 * Date: 2023/3/2
 **/
@Component
public class LocalDateTimeTypeHandlerPlus  extends LocalDateTimeTypeHandler {
    
    
    @Override
     public LocalDateTime getResult(ResultSet rs, String columnName) throws SQLException {
    
    
             Object object = rs.getObject(columnName);
           if(object==null){
    
    
                    return  null;
               }
           return super.getResult(rs, columnName);
     }
}

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/129302691