前言
众所周知,Java8之前的时间API有很多问题,比如:非线程安全,设计很差。时区处理麻烦。新的时间API(java.time
包)解决了这些问题,所以我们在平时开发尽可能的使用新的时间API。但是MyBatis使用LocalDataTime
映射到数据库的datetime
属性时,会报错。
解决方法
mybatis-spring-boot-starter
的版本为1.3.1,对应的MyBatis版本为3.4.5
(版本低于3.4.0
还需要特殊配置)
将数据保存到数据库
添加依赖
1
2
3
4
5
6
7
8
9
10
11
12
13<!-- LocalDateTime映射到数据库需要的依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>
</dependency>
<!-- 格式化LocalDateTime需要的依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.0</version>
</dependency>添加注解,设置时间格式
1
2
3
4
5
6
7public class User {
private Integer id;
"yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8") (pattern =
private LocalDateTime gmtCreate;
//省略get,set方法
}
总结
关于MyBatis使用LocalDateTime
的内容就是上面这些了,如果使用的ORM框架式JPA,请点击JPA使用Java8的LocalDateTime。
欢迎关注博主其他的文章。