mybatis使用localdatetime遇到的一系列问题

ingxx      2022-04-03     760

关键词:

问题

在Mybaits中传入参数为LocalDateTime,查询发现结果集为空,插入时发现时间相差13小时

测试

  1. 新建工程,新建测试库(主要此处新工程使用的JDBC为mysql-connector-java版本为8.0.19)
  2. 发现需要设置MyBatis版本为3.4.5以上,在3.4.5之前不支持LocalDateTime会报错
  3. 确认Mybatis版本高于3.4.5以后发现结果集还是不对
  4. 查询后发现因为Mysql时区问题,mysql-connector-java为8.0以上时会使用数据库设置的时区,而不是Java应用的时区,解决方法为设置JDBC链接添加&serverTimezone=Asia/Shanghai
  5. 测试工程结果集正确,相差13小时问题解决

其他问题

  1. 回到原有项目,确认Mybaits版本高于3.4.5
  2. JDBC链接添加&serverTimezone=Asia/Shanghai
  3. 执行后结果集不正确,插入时间错误
  4. 继续查阅资料发现mysql-connector-java数据库驱动的版本不能低于4.2,现有项目使用mysql-connector-java版本为5.1.34,数据库驱动为4.0,升级5.1.49问题解决
  5. 上一步中数据库驱动版本查看是在META-INF/MANIFEST.MF文件中
  6. 问题解决

总结

  1. 首先确认MyBatis版本为3.4.5以上,如果低于此版本可以手动添加类型转换和依赖
  2. 确认JDBC链接有时区设置,如果没有可以添加或者设置MySql默认时区
  3. 确认mysql-connector-java中MySql驱动高于4.2,可以通过升级版本解决

mybatis-plus中的localdatetime,localdate,localtime

 #Mybatis从3.4.5开始,默认支持JSR-310(日期和时间API)即java.time.*下的时间类自动类型转换本文使用的依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId>< 查看详情

使用杰克逊的 LocalDateTime 解析

】使用杰克逊的LocalDateTime解析【英文标题】:LocalDateTimeparsingwithjackson【发布时间】:2020-10-1600:01:51【问题描述】:我在将JSON映射到具有LocalDateTime的DTO时遇到问题。我关注了这个帖子:JSONparseerror:Cannotconstructinstanceofjava.time.LocalD... 查看详情

为什么建议使用你localdatetime,而不是date?

...阅读本篇文章你将了解到:为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】java8新的时间API的使用方式,包括创建、格 查看详情

java8的localdatetime使用心得和工具类

...。同学们,JAVA8出了这么久,不知道你们有没有用过它的LocalDateTime类型,还是依然用Date类型呢?其实,LocalDateTime类型给我们提供了很多便利,今天就为大家介绍一下。1.LocalDateTime介绍Java的Date,Calendar类型使用起来并不是很方便... 查看详情

mybatis容易遇到的问题(代码片段)

1.MyBatis中#和$的区别? 1.使用#的原理是?占位符,而$的原理为直接字符串拼接方式  2.$方式一般使用在写数据库中的固定字段时候才会使用例如表名或者列名(select*fromuserorderbyxxx)这个中的xxx可以使用$ 3.#可以防止注入,$... 查看详情

mybatis中mapper.xml文件使用注释遇到的坑(代码片段)

Mybatis中Mapper.xml文件使用注释遇到的坑问题复现今天在进行根据ProductName进行查询的时候,出现了报错,报错信息如下:Causedby:org.apache.ibatis.type.TypeException:Couldnotsetparametersformapping:ParameterMappingproperty=& 查看详情

以正确格式显示 localDateTime 的最佳方法是啥? [复制]

】以正确格式显示localDateTime的最佳方法是啥?[复制]【英文标题】:WhatwouldbethebestwaytodisplayalocalDateTimeinthecorrectformat?[duplicate]以正确格式显示localDateTime的最佳方法是什么?[复制]【发布时间】:2021-01-2107:39:44【问题描述】:我一... 查看详情

springboot中关于localdatetime的问题

  LocalDateTime作为JDK1.8的新特性,随着时间的发展应用将会越来越来,这里简单记录下遇到的问题:  1)、日期格式化  2)、与mysql存在时差  首先贴下代码privateLocalDateTimecreateTime;privateLocalDateTimeupdateTime;  第一个问... 查看详情

springboot中关于localdatetime的问题

  LocalDateTime作为JDK1.8的新特性,随着时间的发展应用将会越来越来,这里简单记录下遇到的问题:  1)、日期格式化  2)、与mysql存在时差  首先贴下代码privateLocalDateTimecreateTime;privateLocalDateTimeupdateTime;  第一个问... 查看详情

ieda使用mybatis-generator插件自动生成代码及遇到的问题

 一、pom配置            <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configu 查看详情

Junit测试中LocalDateTime反序列化的问题

】Junit测试中LocalDateTime反序列化的问题【英文标题】:ProblemwithdeserializationofLocalDateTimeinJunittest【发布时间】:2019-08-0202:31:47【问题描述】:我在Junit测试中遇到LocalDateTime反序列化问题。我有简单的RESTAPI,它返回一些DTO对象。当... 查看详情

LocalDateTime - 使用 LocalDateTime.parse 反序列化

】LocalDateTime-使用LocalDateTime.parse反序列化【英文标题】:LocalDateTime-deserializationwithLocalDateTime.parse【发布时间】:2016-09-0701:35:15【问题描述】:我有initiationDate字段,它按ToStringSerializer类序列化为ISO-8601格式。@JsonSerialize(using=ToStrin... 查看详情

mybatis中mapper.xml文件使用注释遇到的坑(代码片段)

Mybatis中Mapper.xml文件使用注释遇到的坑问题复现今天在进行根据ProductName进行查询的时候,出现了报错,报错信息如下:Causedby:org.apache.ibatis.type.TypeException:Couldnotsetparametersformapping:ParameterMappingproperty='ProductName'... 查看详情

Spring Boot 中的 LocalDateTime 格式

】SpringBoot中的LocalDateTime格式【英文标题】:LocalDateTimeformatinSpringBoot【发布时间】:2019-05-1910:22:47【问题描述】:嘿,我遇到了与这里相同的问题:JSONJava8LocalDateTimeformatinSpringBoot我尝试了那里的解决方案,但它不起作用。谁能... 查看详情

mybatis使用的9种设计模式,真是太有用了~

...模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSes... 查看详情

java中第三代日期类localdatetime的详细使用(代码片段)

第三代日期类的概述:下面通过代码进行演示使用:publicclassLocalDate_publicstaticvoidmain(String[]args)//第三日期//1.使用now()返回表示当前日期时间的对象LocalDateTimelocalDateTime=LocalDateTime.now();//LocalDate.now();//LocalTi 查看详情

面试官:mybatis使用了哪些设计模式?(代码片段)

...模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSes... 查看详情

带有 LocalDateTime 的 Spring Boot 项目

】带有LocalDateTime的SpringBoot项目【英文标题】:SpringbootprojectwithLocalDateTime【发布时间】:2018-03-2107:25:48【问题描述】:你可以在SpringBoot项目中使用LocalDateTime吗?如果可以,如何使用?我尝试关注此post并添加了依赖关系和applicati... 查看详情