zoukankan      html  css  js  c++  java
  • mybatis支持jdk8等localdate类型

    大家知道,在实体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目录创建同级结构文件就可以覆盖它.将类型处理器配置上即可

     

  • 相关阅读:
    php 函数汇总
    php 图片base64编码生成dataurl和保存为图片
    bootstrap
    PHPWord
    js json排序
    UE用法
    判断移动端是苹果还是安卓,以及安卓版本
    shell终极操作
    LINUX yum用法
    jquery对checkbox的操作汇总
  • 原文地址:https://www.cnblogs.com/zhulibin2012/p/10650082.html
Copyright © 2011-2022 走看看