Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mybatis 3.51版本的LocalDateTime映射报SQLFeatureNotSupportedException #3230

Closed
wangzhedong opened this issue May 14, 2019 · 33 comments
Closed
Assignees
Labels
Milestone

Comments

@wangzhedong
Copy link

DruidPooledResultSet这个类的getObject方法
public T getObject(String columnLabel, Class type) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
mybatis中的LocalDateTimeTypeHandler调用getNullableResult
public LocalDateTime getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return (LocalDateTime)rs.getObject(columnIndex, LocalDateTime.class);
}

@Starlight-tanxin
Copy link

居然有人一起遇到了一个问题

@benyamin2014
Copy link

同样的问题,怎么处理的

@wangzhedong
Copy link
Author

我把LocalDateTime换成了Date,或者对mybatis的jar包进行降级

@Starlight-tanxin
Copy link

同样的问题,怎么处理的

我直接换了个连接池

@zhanjunfeng
Copy link

我也遇到了这样的问题

@charleyjt
Copy link

charleyjt commented May 22, 2019 via email

@ChuZiHang
Copy link

我用的mybatisplus 也出现LocalDateTime无法映射,有没有大神出来解决一下这个问题

@wenshao wenshao self-assigned this May 29, 2019
@wenshao
Copy link
Member

wenshao commented May 29, 2019

这个应该是mysql驱动的问题,升级新的mysql驱动试试看?

@ChuZiHang
Copy link

这个应该是mysql驱动的问题,升级新的mysql驱动试试看?

我切换普通数据源就没这个问题

@Starlight-tanxin
Copy link

这个应该是mysql驱动的问题,升级新的mysql驱动试试看?

我用druid链接的时候有问题,不过换成HikariCP就没问题了!菜鸡一枚,原因找不到的。不过能这样解决。个人推测是druid的问题,抛错也是指向druid这边的。驱动是mysql-8.0.15;springboot版本是2.1.4

@KevinBlandy
Copy link

。。蓝瘦。换HikariCP了。

@lltx
Copy link

lltx commented Jun 3, 2019

@p0mp0k0
Copy link

p0mp0k0 commented Jun 16, 2019

这个问题很多issues了,也好几年了,就是一直无说明,无修复,issues也一直不处理,不知道什么意思

@cjsky666
Copy link

哈哈哈 迫于mybatis的官方压力

@wenshao
Copy link
Member

wenshao commented Jun 30, 2019

https://github.com/alibaba/druid/releases/tag/1.1.18
问题已修复,请用新版本

@wenshao wenshao closed this as completed Jun 30, 2019
@oktfolio
Copy link

oktfolio commented Jul 1, 2019

https://github.com/alibaba/druid/releases/tag/1.1.18
问题已修复,请用新版本

我这边用起来还是 SQLFeatureNotSupportedException
mybatis-spring-boot-starter:2.0.1
mybatis:3.5.1
mybatis-plus-boot-starter:3.1.2
druid-spring-boot-starter:1.1.18

@cyping258
Copy link

cyping258 commented Jul 1, 2019

https://github.com/alibaba/druid/releases/tag/1.1.18
问题已修复,请用新版本

更新到1.1.18还是报错
1.1.18之前是DruidPooledResultSet.getObject报错
现在是ResultSetProxyImpl.getObject报错

Caused by: java.sql.SQLFeatureNotSupportedException: null
at com.alibaba.druid.proxy.jdbc.ResultSetProxyImpl.getObject(ResultSetProxyImpl.java:1556)
at com.alibaba.druid.pool.DruidPooledResultSet.getObject(DruidPooledResultSet.java:1771)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:69)

@oktfolio
Copy link

oktfolio commented Jul 1, 2019

启用 filter 就会出现 SQLFeatureNotSupportedException

1.1.18 之前版本是调用 getObject(int, Class<T>)getObject(String, Class<T>) 就直接抛出异常。

1.1.18 版本修改后,不启用 filter 直接走 com.mysql.cj.jdbc.result.ResultSetImplgetObject(int, Class<T>)getObject(String, Class<T>)
启用 filter 后走 com.alibaba.druid.proxy.jdbc.ResultSetProxyImplgetObject(int, Class<T>)getObject(String, Class<T>),而这两个的实现是 throw new SQLFeatureNotSupportedException();

看了下,大概需要修改 Druid 中 FilterChain FilterChainImpl Filter StatFilter WallFilter EncodingCovertFilter ResultSetProxyImpl FilterAdapter

不知道我的理解对不对。看到要修改这么多东西,我暂时放弃了。

@ChuZiHang
Copy link

切换到1.1.18后找不到DruidDataSource.java,这个类,,是我的包有问题么,1.1.17没问题
type: com.alibaba.druid.pool.DruidDataSource,,,,1.1.18报错

@ylh23y
Copy link

ylh23y commented Jul 18, 2019

https://github.com/alibaba/druid/releases/tag/1.1.18
问题已修复,请用新版本

测试了最新版本1.1.19的还是报错,mybatis-plus用的是3.1.2
#3302
搜狗截图20190718141331
#3276

@liaomengge
Copy link

https://github.com/alibaba/druid/releases/tag/1.1.18
问题已修复,请用新版本

测试了最新版本1.1.19的还是报错,mybatis-plus用的是3.1.2
#3302
搜狗截图20190718141331
#3276

把mybatis的版本降级就可以了,org.mybatis:mybatis:3.5.0

@ylh23y
Copy link

ylh23y commented Aug 6, 2019

只能降了才能用

@igofind
Copy link

igofind commented Aug 13, 2019

mybatis-spring-boot-starter 换成 2.0.0 就可以了 => 就是org.mybatis换成 3.5.0的

@duimba
Copy link

duimba commented Aug 15, 2019

mybatis-spring-boot-starter 换成 2.0.0 就可以了 => 就是org.mybatis换成 3.5.0的

确实只有降级才可以用

@ylh23y
Copy link

ylh23y commented Sep 2, 2019

这个问题还是没有彻底弄好

@liaomengge
Copy link

感觉1.1.18到1.1.202个版本,都没有着重修复总要的bug,反而修修一些小东西,然后,搞个版本,哎 ~

@ROMYIM
Copy link

ROMYIM commented Sep 23, 2019

我用1.1.20这版本还是有这个问题。什么时候才修复这个bug

@zengchuan
Copy link

1.1.20版本还有这个问题

@AntsCodeTeam
Copy link

当Mybatis3.5.2与druid1.1.20同时使用时会出现同样的错误
druid
mybatis3 5 2
操作
exception

临时解决方案:
(1)对Mybatis进行降级;
(2)更换其他数据源;
(3)将Mybatis版本降级到3.4.x同时添加mybatis-typehandlers-jsr310并作适当的配置
(4)由于mybatis-typehandlers-jsr310中的类型处理包路径与Mybatis3.5.2的包路径相同会产生引用冲突,所以可以改变mybatis-typehandlers-jsr310中的包路径重新打包引用
mT
mjsrt

真的太难了😓😂

@BeyondTheBlade
Copy link

1.1.21还是存在这个问题 mybatis用的是3.5.3

@BeyondTheBlade
Copy link

调试了半小时成功了,有个坑在这里,我用的是druid1.1.21 mybatis-plus 3.3.0 最重要的是驱动,mysql是8+ oracle是ojdbc8(12c版本) 驱动低了都不行

@liaomengge
Copy link

调试了半小时成功了,有个坑在这里,我用的是druid1.1.21 mybatis-plus 3.3.0 最重要的是驱动,mysql是8+ oracle是ojdbc8(12c版本) 驱动低了都不行

是的,这个还和驱动的版本有关系,我之前用pg的时候也遇到了的,其实有些驱动低层做了一些处理,所以出了问题,还是自己debug调试,找到问题的关键点 ~

@liuzhenggang
Copy link

1.1.21还是存在这个问题 mybatis用的是3.5.3

我用的mybatis3.5.3 和 alibaba1.1.18。mysql驱动8.0.16。没有错误,正常。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests