当前配置:数据库字段类型为datetime,对应实体类属性的类型为LocalDateTime,并且使用shardingjdbc以时间数据为分片键进行分片,使用mybatisplus插入数据
表
实体类
测试:在插入数据时报错
由于mysql希望接收的时间数据格式为不带T的,而我们的时间数据是带T的,导致解析失败
原因可能是:
由于自动扫描注册组件或配置问题,mybatisplus默认自带的typeHandler并没有起作用,导致时间数据默认使用LocalDateTime.toString()方法来传递一个时间字符串给数据库(LocalDateTime默认输出是ISO-8601格式,这种格式默认是带T的 ),导致解析失败
解决方法:
1.可以先尝试认为是默认自动扫描创建typeHandler组件出错了,所以在配置文件设置(但我试过了,也没有用):
2.如果还是不行的话,那就手动创建一个LocalDateTime数据类型的typeHandler吧
再次测试,成功了: