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

     

  • 相关阅读:
    sikuli 安装
    pychar入门参考教材
    Jmeter 问题集
    appium 中文API 集
    执行Chrome自动化时--正在受到自动软件的控制的显示屏蔽
    下拉框选择
    发邮件 文字+ 附件的方法(QQ or 网易 邮箱)
    发送邮件(单独文字)的方法(网易邮箱 OR QQ邮箱)
    aapium 设置安卓机参数
    -循环点击遇到的坑(每次点击后返回,页面元素都会变化的解决方法)
  • 原文地址:https://www.cnblogs.com/zhulibin2012/p/10650082.html
Copyright © 2011-2022 走看看