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!