解决数据库中datetime无法转换成java.sql.Date类型问题

871 阅读1分钟

问题:

在跟着尚硅谷javaweb课程做qqzone项目时, 出现Can not set java.util.Date field com.atguigu.qqzone.pojo.Topic.topicDate to java.time.LocalDateTime这行错误。

解决方案:

我也是在查阅了一些资料后才找到答案 原答主:(44条消息) Can not set java.util.Date field *** to java.time.LocalDateTime解决办法_Risun98的博客-CSDN博客

首先得找到问题所在:应该属于是mysql8.0驱动的bug,具体原因未知。 因为正常情况下从表中查询到datatime类型的数据时,对应转化为的类型应该是Timestamp

image.png

然而我们查询到的类型却是LocalDateTime

image.png

所以可以有以下解决方案:

方案一:

在属性赋值前进行类型检查,手动将LocalDateTime转换为Date类型

if (propertyValue.getClass().toString().equals("class java.time.LocalDateTime")) { propertyValue = Timestamp.valueOf((LocalDateTime) propertyValue); }

方案二:

更换mysql版本