MyBatis使用Java8的LocalDateTime

前言

众所周知,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
    7
    public class User {
    private Integer id;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    private LocalDateTime gmtCreate;
    //省略get,set方法
    }

总结

关于MyBatis使用LocalDateTime的内容就是上面这些了,如果使用的ORM框架式JPA,请点击JPA使用Java8的LocalDateTime

欢迎关注博主其他的文章。

感谢您的支持!

本文标题:MyBatis使用Java8的LocalDateTime

文章作者:yoga

发布时间:2017年12月01日 - 21:12

原始链接:https://yoga0521.github.io/2017/12/01/MyBatis使用Java8的LocalDateTime/

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。 转载请注明出处!