MyBatis使用LocalDateTime遇到的一系列问题
问题
在Mybaits中传入参数为LocalDateTime,查询发现结果集为空,插入时发现时间相差13小时
测试
- 新建工程,新建测试库(主要此处新工程使用的JDBC为mysql-connector-java版本为8.0.19)
- 发现需要设置MyBatis版本为3.4.5以上,在3.4.5之前不支持LocalDateTime会报错
- 确认Mybatis版本高于3.4.5以后发现结果集还是不对
- 查询后发现因为Mysql时区问题,mysql-connector-java为8.0以上时会使用数据库设置的时区,而不是Java应用的时区,解决方法为设置JDBC链接添加&serverTimezone=Asia/Shanghai
- 测试工程结果集正确,相差13小时问题解决
其他问题
- 回到原有项目,确认Mybaits版本高于3.4.5
- JDBC链接添加&serverTimezone=Asia/Shanghai
- 执行后结果集不正确,插入时间错误
- 继续查阅资料发现mysql-connector-java数据库驱动的版本不能低于4.2,现有项目使用mysql-connector-java版本为5.1.34,数据库驱动为4.0,升级5.1.49问题解决
- 上一步中数据库驱动版本查看是在META-INF/MANIFEST.MF文件中

- 问题解决
总结
- 首先确认MyBatis版本为3.4.5以上,如果低于此版本可以手动添加类型转换和依赖
- 确认JDBC链接有时区设置,如果没有可以添加或者设置MySql默认时区
- 确认mysql-connector-java中MySql驱动高于4.2,可以通过升级版本解决
MyBatis使用LocalDateTime遇到的一系列问题的更多相关文章
- springboot~mybatis里localdatetime序列化问题
问题起因 主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下: 在m ...
- SpringBoot Mybatis 使用LocalDateTime
mybatis-spring-boot-starter 2.0.1 会报错,不知道如何解决(建议先不用) mybatis-spring-boot-starter 2.0.1 - 1.3.2 版本不会报 ...
- LocalDatetime 与 mybatis、json的坑
总所周知,localdatetime是jdk8 推出的关于日期计算非常方便地一个类,一旦开始用上就欲罢不能.但是在使用的时候,坑还是蛮多的. 一.mybatis与LocalDatetime 如果直接将 ...
- LocalDateTime整合到SpringBoot + MyBatis中
啥也不说先贴两个代码: 一:MVC层配置 @Configuration public class JacksonConfig { /** 默认日期时间格式 */ public static final ...
- 深入理解Mybatis技术与原理
目录 第1章 Mybatis简介 1.1 传统的JDBC编程 1.2 ORM模型 1.4 MyBatis 1.5 什么时候用MyBatis 第2章 MyBatis入门 2.2 MyBatis构成 2. ...
- mybatis的typeHandler
typeHandler作用: 1.传参时将javaType类型转换成jdbcType 2.结果集中ResultSet中取值时,jdbcType转换为javaType; 系统自定义的typeHandle ...
- 《深入浅出MyBatis技术原理与实战》——3. 配置
要注意的是上面那些层次是不能够颠倒顺序的,否则MyBatis在解析文件的时候就会出现异常. 3.1 properties元素 properties是一个属性配置元素,让我们能在配置文件的上下文中使用它 ...
- fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:11' could not be parsed at index 10
本地java类 import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; ...
- 精尽 MyBatis 源码分析 - 整体架构
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
随机推荐
- MYSQL JSON字段操作
create CREATE TABLE t_test ( salary_data json NULL COMMENT 'JSON类型字段' ); -- insert INSERT INTO t_tes ...
- Mock分页
前后端分离开发时,一般会使用mock. 因为mock是用node运行的,行为与调用后台一致. 这样,不需要等后台写好,只要有接口文档,前端可以自己调接口,这样联调时遇到的问题会少很多,可以加快整体开发 ...
- vuex : 模块化改造
我们知道,vuex是vue技术栈中很重要的一部分,是一个很好用的状态管理库. 如果你的项目没有那么复杂,或者对vuex的使用没有那么重度,那么,是用不着modules功能的. 但如果你写着写着就发现你 ...
- 题解 洛谷 P4899 【[IOI2018] werewolf 狼人】
先考虑狼形,其只能走编号小于\(R\)的点.若将每条边赋边权为其两端点编号的较大值,然后按最小生成树的顺序构建\(Kruskal\)重构树. 那么从原图的一个点\(x\)在树上倍增,到达满足要求且深度 ...
- rsync 的用法
rsync官方网站: https://www.samba.org/ftp/rsync/rsync.html rsync是可以实现增量备份的工具.配合任务计划,rsync能实现定时或间隔同步,配合ino ...
- form-create 组件生成规则说明
本文介绍form-create生成规则与组件的关系 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置1 ...
- 哇咔咔干货来啦:PowerJob 原理剖析之 Akka Toolkit
本文适合有 Java 基础知识的人群 作者:HelloGitHub-Salieri HelloGitHub 推出的<讲解开源项目>系列. Akka is a toolkit for bui ...
- PHP shuffle() 函数
实例 把数组中的元素按随机顺序重新排列: <?php$my_array = array("red","green","blue",&q ...
- PHP fopen() 函数
定义和用法 fopen() 函数打开一个文件或 URL. 如果 fopen() 失败,它将返回 FALSE 并附带错误信息.您可以通过在函数名前面添加一个 '@' 来隐藏错误输出. 语法 fopen( ...
- PHP exit() 函数
实例 输出一条消息,并退出当前脚本: <?php$site = "http://www.w3cschool.cc/";fopen($site,"r")or ...