Java 8 LocalDate mapping with mybatis

前端 未结 4 1858
终归单人心
终归单人心 2020-12-28 17:10

I am using java.time.LocalDate (Java 8) to represent some of the member fields in a Java class.

class Test{
    private LocalDate startDate;
    private Local         


        
相关标签:
4条回答
  • 2020-12-28 17:23

    You should just define the entire class name:

    resultType="java.time.LocalDate"
    
    0 讨论(0)
  • 2020-12-28 17:24

    Please, look here: http://mybatis.github.io/mybatis-3/configuration.html#typeHandlers

    To use LocalDate and Timestamp you have to write a custom typeHandler, like this:

    // ExampleTypeHandler.java
    @MappedTypes(LocalDate.class)
    public class LocalDateTypeHandler extends BaseTypeHandler<LocalDate> {
    
      //implement all methods
    }
    

    config your config.xml like this:

    <!-- mybatis-config.xml -->
    <typeHandlers>
      <typeHandler handler="your.package.LocalDateTypeHandler"/>
    </typeHandlers>
    

    It should help.

    0 讨论(0)
  • 2020-12-28 17:31

    For my current project I've created mappers for Java 8 time API classes.

    You can see my implementation here jneat/mybatis-types

    0 讨论(0)
  • 2020-12-28 17:39

    Look here: https://github.com/mybatis/typehandlers-jsr310

    If you are using mybatis version 3.4 or later, you can simply add this artifact on your classpath and MyBatis will automatically register the provided type handlers.

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

    If you are using an older version you need to register the type handlers manually.

    <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>
    

    UPD:

    Type handlers for "JSR 310: Date and Time API" has been merged into mybatis core since 3.4.5.(See #974)

    0 讨论(0)
提交回复
热议问题