项目场景:
公司的项目实体类日期类型是LocalDate或者LocalDateTime。
问题描述:
mysql数据源从hikari切换为druid后,数据库的datetime和timestamp类型无法转化为LocalDate和LocalDateTime了。
原因分析:
百度了一下,都说是什么mybatis版本的原因。但是我是切换了数据源出现的,也就是说问题出在数据源。
解决方案:
经过一番思考之后,总结出:如果使用的数据源是druid,有两种解决方法:一是mybatis版本需要降到3.0.1,二是java实体类用Date接收数据库的日期类型。
如果不需要用到druid monitor,就用springboot 2.x之后自带的数据源hikari,具体配置如下,可以根据项目实际情况做修改:
yml写法:
hikari:
minimum-idle: 10
maximum-pool-size: 100
auto-commit: true
idle-timeout: 1800000
pool-name: DatebookHikariCP
max-lifetime: 1800000
connection-timeout: 60000
connection-test-query: SELECT 1
properties写法:
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=100
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=1800000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.connection-test-query=SELECT 1