SpringBoot整合Mybatis?LocalDateTime?映射失效的解決
SpringBoot整合Mybatis LocalDateTime映射失效
一、概述
最近在開發(fā)一個項目,在使用SpringBoot繼承Mybatis時,做單元測試時,由于需要根據(jù)參數(shù)(類型LocaDateTime)去更新數(shù)據(jù),發(fā)現(xiàn)更新記錄為0。
剛開始以為是沒有提交事務(wù)(Mybatis默認(rèn)沒有開啟自動提交),后來句時,是能成功的。所以排除沒有提交事務(wù)。
二、具體原因
在實體PO類里面,可以使用Java.sql.Date,Java.sql.Timestamp,java.util.Date來映射到數(shù)據(jù)庫date,timestamp,datetime。但是這些類許多方法都已經(jīng)過時。
Java8的API的LocalDate,LocalDateTime,LocalTime,現(xiàn)在比較常用。但是,
我mybatis的版本(3.5.3)是不支持Java8的日期、時間。(默認(rèn)情況下,Mybatis是不支持Java8的時間和日期)
三、解決辦法
1.引入類型轉(zhuǎn)換的依賴
? ? ? ? <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>
四、小結(jié)一下
發(fā)現(xiàn)問題,并解決問題,也一種能力的提升。以上如果有錯,還望多多指正。
使用LocalDateTime報錯問題
在使用mybatis做查詢時, 時間字段設(shè)置為了LocalDatetime,報錯
org.springframework.dao.InvalidDataAccessApiUsageException: Error attempting to get column 'CREATE_TIME' from result set. Cause: java.sql.SQLFeatureNotSupportedException
; null; nested exception is java.sql.SQLFeatureNotSupportedException
查看了網(wǎng)上的解決辦法全部千篇一律,最后在評論里發(fā)現(xiàn)了有效的辦法.
解決方法
升級druid數(shù)據(jù)源,我升級到21版本可以了. 總之使用高版本的數(shù)據(jù)源
?<!-- 阿里Druid --> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba</groupId> ? ? ? ? ? ? <artifactId>druid-spring-boot-starter</artifactId> ? ? ? ? ? ? <version>1.1.21</version> ? ? ? ? </dependency>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java開發(fā)AOP基礎(chǔ)JdkDynamicAopProxy
這篇文章主要為大家介紹了java開發(fā)AOP基礎(chǔ)JdkDynamicAopProxy源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
詳解MyBatisPlus如何實現(xiàn)分頁和查詢操作
這篇文章主要為大家詳細介紹了MyBatisPlus是如何實現(xiàn)分頁和查詢操作的,文中的示例代碼講解詳細,對我們學(xué)習(xí)有一定的幫助,需要的可以參考一下2022-05-05
springboot文件上傳時maxPostSize設(shè)置大小失效問題及解決
這篇文章主要介紹了springboot文件上傳時maxPostSize設(shè)置大小失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
idea2020.2卡死在reading maven projects
這篇文章主要介紹了idea2020.2卡死在reading maven projects,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

