SpringBoot整合Mybatis LocalDateTime 映射失效

SpringBoot整合Mybatis LocalDateTime 映射失效

一、概述

最近在開發一個項目,在使用SpringBoot繼承Mybatis時,做單元測試時,由於需要根據參數(類型LocaDateTime)去更新數據,發現更新記錄爲0。剛開始以爲是沒有提交事務(Mybatis默認沒有開啓自動提交),後來句時,是能成功的。所以排除沒有提交事務。

二、具體原因

在實體PO類裏面,可以使用Java.sql.Date,Java.sql.Timestamp,java.util.Date來映射到數據庫date,timestamp,datetime。但是這些類許多方法都已經過時。
Java8的API的LocalDate,LocalDateTime,LocalTime,現在比較常用。但是,
我mybatis的版本(3.5.3)是不支持Java8的日期、時間。(默認情況下,Mybatis是不支持Java8的時間和日期)

三、解決辦法

1.引入類型轉換的依賴

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

2.在Mybatis.config.xml文件配置

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

四、總結

發現問題,並解決問題,也一種能力的提升。以上如果有錯,還望多多指正。

參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章