Heim  >  Artikel  >  Java  >  Mybatis verwendet Java8-Datumsbeispiele LocalDate und LocalDateTime

Mybatis verwendet Java8-Datumsbeispiele LocalDate und LocalDateTime

黄舟
黄舟Original
2018-05-25 09:51:573441Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen darüber vor, wie mybatis das Datum LocalDate und LocalDateTime von Java8 verwendet. Der Artikel stellt es im Detail anhand des Beispielcodes vor. Es hat einen gewissen Referenz-Lernwert für alle, die es brauchen Lassen Sie uns gemeinsam mit dem Herausgeber unten lernen.

Vorwort

Ich glaube, jeder sollte wissen, dass man in der Entität Entity java.sql.Date und java.sql.Timestamp verwenden kann , java.util.Date zur Zuordnung zu Datum, Zeitstempel, Datum/Uhrzeit und anderen Feldern der Datenbank

Die Klassen java.sql.Date, java.sql.Timestamp und java.util .Datum wird nicht gut verwendet, viele Methoden sind veraltet.

Es gibt einige neue APIs in Java8, LocalDate, LocalTime, LocalDateTime sind sehr einfach zu verwenden

Standardmäßig werden Uhrzeit und Datum von Java8 in mybatis nicht unterstützt . Bei direkter Verwendung wird der folgende Fehler gemeldet

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) 
 ... 81 common frames omitted

Die Lösung lautet wie folgt:

Fügen Sie Folgendes direkt hinzu Abhängigkeit

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

Nachdem Sie diese Abhängigkeit konfiguriert haben, können Sie das Datum in der Entität durch LocalDate und LocalDateTime ersetzen, und es besteht keine Notwendigkeit, die anderen zu ändern

public class User { 
 private Integer id; 
 private String name; 
 private LocalDate createDate; 
 private LocalDateTime createTime; 
}

Das oben Genannte gilt nur gültig zum Testen in mybatis-Version 3.4.0

Wenn die verwendete mybatis-Version niedriger als 3.4.0 ist, müssen Sie außerdem die folgende

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

Zusammenfassung konfigurieren

Das obige ist der detaillierte Inhalt vonMybatis verwendet Java8-Datumsbeispiele LocalDate und LocalDateTime. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn