Error attempting to get column ‘created_time‘ from result set. Cause: java.sql.SQLFeatureNotSupporte

问题:

使用mybatis-plus自动生成日期的出现 Error attempting to get column ‘created_time’
from result set. Cause: java.sql.SQLFeatureNotSupportedException异常

原因:

因为我们集成了durid数据源1.1.18 mybatis-plus版本是3.2.0

分析:

mybatis-Plus3.1.0及之前的版本,依赖的是mybatis 3.5.0,
mybatis-Plus3.1.1升级了mybatis的依赖到3.5.1,而mybatis 3.5.1 对于新日期类型,需要JDBC
driver支持JDBC 4.2
API.LocalDateTime等新日期类型处理方式升级,但druid在1.1.21版本之前不支持,那么就会出现新日期类型报错

三种解决方案:
第一种
在generator之前时候配置时间生成策略
在DateType源码中有三种策略可供选择 如下图 ↓ ↓ ↓
在这里插入图片描述

在生成的时候全局配置里面配置DateType为ONLY_DATE即可

GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("administrator");
gc.setOpen(false);
gc.setServiceName("%sService");//去掉接口上的 I
gc.setDateType(DateType.ONLY_DATE);//配置时间类型策略
public enum DateType {
    /**
     * 只使用 java.util.date 代替
     */
    ONLY_DATE,
    /**
     * 使用 java.sql 包下的
     */
    SQL_PACK,
    /**
     * 使用 java.time 包下的
     * <p>java8 新的时间类型</p>
     */
    TIME_PACK
}

第二种

升级druid1.1.21解决这个问题

第三种

降低mybatis-plus版本到3.1.0解决此问题

总结:

三种方案都可解决此问题。 第一种是一个较稳妥的方案。毕竟修改和降低版本可能引发别的问题,从而影响整个系统。

原文链接:https://blog.csdn.net/qq_42767653/article/details/112323303

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值