SpringBoot整合Mybatis?LocalDateTime?映射失效的解決
SpringBoot整合Mybatis LocalDateTime映射失效
一、概述
最近在開發(fā)一個(gè)項(xiàng)目,在使用SpringBoot繼承Mybatis時(shí),做單元測試時(shí),由于需要根據(jù)參數(shù)(類型LocaDateTime)去更新數(shù)據(jù),發(fā)現(xiàn)更新記錄為0。
剛開始以為是沒有提交事務(wù)(Mybatis默認(rèn)沒有開啟自動(dòng)提交),后來句時(shí),是能成功的。所以排除沒有提交事務(wù)。
二、具體原因
在實(shí)體PO類里面,可以使用Java.sql.Date,Java.sql.Timestamp,java.util.Date來映射到數(shù)據(jù)庫date,timestamp,datetime。但是這些類許多方法都已經(jīng)過時(shí)。
Java8的API的LocalDate,LocalDateTime,LocalTime,現(xiàn)在比較常用。但是,
我mybatis的版本(3.5.3)是不支持Java8的日期、時(shí)間。(默認(rèn)情況下,Mybatis是不支持Java8的時(shí)間和日期)
三、解決辦法
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)問題,并解決問題,也一種能力的提升。以上如果有錯(cuò),還望多多指正。
使用LocalDateTime報(bào)錯(cuò)問題
在使用mybatis做查詢時(shí), 時(shí)間字段設(shè)置為了LocalDatetime,報(bào)錯(cuò)
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)上的解決辦法全部千篇一律,最后在評(píng)論里發(fā)現(xiàn)了有效的辦法.
解決方法
升級(jí)druid數(shù)據(jù)源,我升級(jí)到21版本可以了. 總之使用高版本的數(shù)據(jù)源
?<!-- 阿里Druid --> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba</groupId> ? ? ? ? ? ? <artifactId>druid-spring-boot-starter</artifactId> ? ? ? ? ? ? <version>1.1.21</version> ? ? ? ? </dependency>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- mybatisPlus使用LocalDateTime轉(zhuǎn)化異常的實(shí)現(xiàn)
- 淺談MyBatisPlus中LocalDateTime引發(fā)的一些問題和解決辦法
- 解決mybatis-plus使用jdk8的LocalDateTime 查詢時(shí)報(bào)錯(cuò)的方法
- springboot mybatis里localdatetime序列化問題的解決
- mybatis如何使用Java8的日期LocalDate和LocalDateTime詳解
- mybatis3.4.0不支持LocalDateTime的解決方法(No typehandler found for property time)
相關(guān)文章
Spring中的BeanFactory對(duì)象實(shí)例化工廠詳解
這篇文章主要介紹了Spring中的BeanFactory對(duì)象實(shí)例化工廠詳解,BeanFactory及其子類是Spring IOC容器中最重要的一個(gè)類,BeanFactory由類名可以看出其是一個(gè)Bean工廠類,其實(shí)它確實(shí)是一個(gè)Bean工廠類,完成Bean的初始化操作,需要的朋友可以參考下2023-12-12Java對(duì)象池pool2分析PooledObjectFactory過程
文章介紹了Java中對(duì)象池化技術(shù)的背景,以Apache的Pool2庫為例,詳細(xì)講解了GenericObjectPool的構(gòu)造函數(shù)參數(shù)和PooledObjectFactory接口的實(shí)現(xiàn),通過商場里的共享充電寶的比喻,說明了池化思維的應(yīng)用2025-02-02Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法
這篇文章主要介紹了Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法,本文使用apache-commons-net工具包時(shí)遇到這個(gè)問題,解決方法很簡單,需要的朋友可以參考下2015-05-05Java實(shí)現(xiàn)Socket的TCP傳輸實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)Socket的TCP傳輸,實(shí)例分析了java通過socket實(shí)現(xiàn)TCP傳輸?shù)南嚓P(guān)技巧,需要的朋友可以參考下2015-05-05用java實(shí)現(xiàn)跳動(dòng)的小球示例代碼
這篇文章主要介紹了用java實(shí)現(xiàn)跳動(dòng)的小球,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05使用Springboot實(shí)現(xiàn)word在線編輯保存
PageOffice目前支持的Web編程語言及架構(gòu)有:Java(JSP、SSH、MVC等),ASP.NET(C#、VB.NET、MVC、Razor等),PHP,ASP,本篇文章就帶你使用Springboot整合PageOffice實(shí)現(xiàn)word在線編輯保存2021-08-08完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題
這篇文章主要介紹了完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Springboot配置管理Externalized?Configuration深入探究
這篇文章主要介紹了Springboot配置管Externalized?Configuration深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01