Mybatis兼容LocalDateTime

契子

语   言:Java

数据库:PgSql


在数据库中定义的时间数据类型为timestamptz

在实体类中定义的时间数据类型为LocalDateTime


在执行查询的时候报错如下:

解决方式

其实mybatis已经发现了这个问题并且提供了解决方式 

只需要引入这个依赖就行了
GitHub - mybatis/typehandlers-jsr310: MyBatis type handlers for JSR-310MyBatis type handlers for JSR-310. Contribute to mybatis/typehandlers-jsr310 development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/mybatis/typehandlers-jsr310
但是又有新的问题: 

这个依赖和mybatis的路径是完全一样的 所以在引入了之后还是会报上述的错误

所以不用引入上面的依赖 直接在项目中覆盖对LocalDateTime的处理就行了

相关代码已经上传:
mybatis-localdatetime: Mybatis兼容LocalDateTime类型映射icon-default.png?t=N7T8https://gitee.com/lingqiufeng/mybatis-localdatetime

下载后把代码黏贴到项目中就行了,例如下述截图:

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis Plus是一款为Mybatis提供增强功能的开源框架,支持Java 8新特性。当我们在使用Java 8中的LocalDateTime类型时,如果不使用Mybatis Plus,就需要手动处理时间格式的转换,比较麻烦。但是使用Mybatis Plus,则能够自动进行时间格式的转换,极大地提高了开发效率。 在Mybatis Plus中,处理LocalDateTime类型的实现原理其实比较简单。Mybatis Plus通过自定义全局的字段填充器或者特定的字段填充器进行时间格式的转换,即在插入或者更新操作时,将LocalDateTime类型转换为Java Date类型并进行数据库操作,其他查询操作则自动转换为LocalDateTime类型。 值得注意的是,在使用Mybatis Plus处理LocalDateTime类型时,需要在实体类的对应字段上添加注解@TableField(fill = FieldFill.INSERT_UPDATE),表示该字段需要进行插入和更新时的自动填充。同时,需要在Mybatis Plus的配置文件中添加相关的配置,如下: ``` mybatis-plus: configuration: #配置字段填充器 default-fill: insert-fill: true update-fill: true ``` 最后,需要注意的是,在进行时间格式转换时,要确保Java代码和数据库的时区相同,否则会出现时间不一致的问题。可以通过统一设置时区的方式来解决这个问题。 总之,使用Mybatis Plus处理LocalDateTime类型,能够自动进行时间格式的转换,大大提高了开发效率,使得我们的代码更加简洁、易读、易维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值