mybatis支持jdk8等localdate类型

摘要:
如您所知,在实体实体中,您可以使用java。sql。日期,java。sql。时间戳,java。util。要映射到数据库的日期、时间戳、日期时间和其他字段的日期。然而,java。sql。日期,java。sql。时间戳,java。utilTheDate类不易使用,许多方法都已过时。Java8有一些新的API。LocalDate、LocalTime和LocalDateTime非常容易使用。默认情况下,Mybatis不支持Java 8的时间和日期。

大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段

但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。

Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime 非常好用

默认的情况下,在mybatis里面不支持java8的时间、日期。直接使用,会报如下错误

Caused by: java.lang.IllegalStateException: No typehandler found for property createTime
    at org.apache.ibatis.mapping.ResultMapping$Builder.validate(ResultMapping.java:151)
    at org.apache.ibatis.mapping.ResultMapping$Builder.build(ResultMapping.java:140)
    at org.apache.ibatis.builder.MapperBuilderAssistant.buildResultMapping(MapperBuilderAssistant.java:382)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildResultMappingFromContext(XMLMapperBuilder.java:378)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:280)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:252)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:244)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116)

解决方法如下:

 直接加入如下依赖

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-typehandlers-jsr310</artifactId>
    <version>1.0.1</version>
</dependency>

如果使用的mybatis版本低于3.4.0,则还需要配置如下:

<typeHandlers>
    <typeHandler handler="org.apache.ibatis.type.InstantTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.OffsetDateTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.OffsetTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.ZonedDateTimeTypeHandler" />
</typeHandlers>

注意: 可能出现mybatis全局配置在jar包中情况,那么需要查找spring加载mybatis全局配置文件的位置,并覆盖它即可.

如下:

classpath:conf/mybatis-config.xml是指定jar包中的xml配置,我们在resources目录创建同级结构文件就可以覆盖它.将类型处理器配置上即可

mybatis支持jdk8等localdate类型第1张

 

免责声明:文章转载自《mybatis支持jdk8等localdate类型》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Vue-CLI 3.x 设置反向代理Halcon模板匹配下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Netty源码分析之ChannelPipeline(二)—ChannelHandler的添加与删除

上篇文章中,我们对Netty中ChannelPipeline的构造与初始化进行了分析与总结,本篇文章我们将对ChannelHandler的添加与删除操作进行具体的的代码分析; 一、ChannelHandler的添加 下面是Netty官方的一段demo源码,可以看到在服务端初始化时执行了向ChannelPipeline中添加自定义channelHandler...

【JAVA】POI生成EXCEL图表(柱状图、折线等)

1、使用excel工具自带的图形工具创建一个图: 2、绑定数据区域: 3、数据区域绑定完成,我们要做的就是将数据写入到数据区域中: 4、标记 5、POI 引入包 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency>...

java实现数据的Excel导出(合并单元格、样式等)

  直接上代码吧 /** * */ package zhongdian.whh.commonclass; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List...

Struts2升级出现的问题

由于大家都懂的原因,涉struts2的项目需要将struts2相关包升级至2.3.15.1。今将升级方法和常见问题解决简单总结如下。   一、基本升级操作 1. 获取Struts2.3.15.1jar包 从Struts官网下载struts2.3.15.1发布包: http://apache.fayea.com/apache-mirror//struts/l...

mybatis一对多分页查询

今天遇到一个问题,当用户关联角色查询翻页时,如果一个用户有多个角色,会认为是多条记录,页面加载的时候就会发现记录数不对。 为了解决这个问题,我打算分两次查询,第一次只按分页查询出当前页应该展示的用户id列表,然后根据这个idlist去关联查询用户和角色的所有要用到的字段 java public Map<String, Object> selec...

mybatis二(参数处理和map封装及自定义resultMap)

1、单个参数 mybatis不会做特殊处理。   #{参数名/任意名}:取出参数值。 2、多个参数 mybatis会做特殊处理。   多个参数会被封装成 一个map。   key:param1...paramN,或者参数的索引也可以。   value:传入的参数值。   #{}就是从map中获取指定的key的值;   多个参数传递的时候要使用...