Java >> Java tutorial >  >> Tag >> mybatis

Java 8 LocalDate-kortlægning med mybatis

Se her:https://github.com/mybatis/typehandlers-jsr310

Hvis du bruger mybatis version 3.4 eller nyere, kan du blot tilføje denne artefakt på din klassesti, og MyBatis vil automatisk registrere de angivne typebehandlere.

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

Hvis du bruger en ældre version, skal du registrere typebehandlerne manuelt.

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

Typehandlere for "JSR 310:Date and Time API" er blevet flettet ind i mybatis core siden 3.4.5.(Se #974)


Til mit nuværende projekt har jeg lavet mappers til Java 8 time API klasser.

Du kan se min implementering her jneat/mybatis-types


Se venligst her:http://mybatis.github.io/mybatis-3/configuration.html#typeHandlers

For at bruge LocalDate og Timestamp skal du skrive en brugerdefineret typeHandler, sådan her:

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

  //implement all methods
}

konfig din config.xml sådan her:

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

Det burde hjælpe.


Java tag