SpringBoot整合Mybatis?LocalDateTime?映射失效的解決
SpringBoot整合Mybatis LocalDateTime映射失效
一、概述
最近在開發(fā)一個(gè)項(xiàng)目,在使用SpringBoot繼承Mybatis時(shí),做單元測(cè)試時(shí),由于需要根據(jù)參數(shù)(類型LocaDateTime)去更新數(shù)據(jù),發(fā)現(xiàn)更新記錄為0。
剛開始以為是沒有提交事務(wù)(Mybatis默認(rèn)沒有開啟自動(dòng)提交),后來(lái)句時(shí),是能成功的。所以排除沒有提交事務(wù)。
二、具體原因
在實(shí)體PO類里面,可以使用Java.sql.Date,Java.sql.Timestamp,java.util.Date來(lái)映射到數(shù)據(jù)庫(kù)date,timestamp,datetime。但是這些類許多方法都已經(jīng)過(guò)時(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)問(wèn)題,并解決問(wèn)題,也一種能力的提升。以上如果有錯(cuò),還望多多指正。
使用LocalDateTime報(bào)錯(cuò)問(wèn)題
在使用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ā)的一些問(wèn)題和解決辦法
- 解決mybatis-plus使用jdk8的LocalDateTime 查詢時(shí)報(bào)錯(cuò)的方法
- springboot mybatis里localdatetime序列化問(wèn)題的解決
- mybatis如何使用Java8的日期LocalDate和LocalDateTime詳解
- mybatis3.4.0不支持LocalDateTime的解決方法(No typehandler found for property time)
相關(guān)文章
java開發(fā)AOP基礎(chǔ)JdkDynamicAopProxy
這篇文章主要為大家介紹了java開發(fā)AOP基礎(chǔ)JdkDynamicAopProxy源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
詳解MyBatisPlus如何實(shí)現(xiàn)分頁(yè)和查詢操作
這篇文章主要為大家詳細(xì)介紹了MyBatisPlus是如何實(shí)現(xiàn)分頁(yè)和查詢操作的,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定的幫助,需要的可以參考一下2022-05-05
springboot文件上傳時(shí)maxPostSize設(shè)置大小失效問(wèn)題及解決
這篇文章主要介紹了springboot文件上傳時(shí)maxPostSize設(shè)置大小失效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
ssm框架上傳圖片保存到本地和數(shù)據(jù)庫(kù)示例
本篇文章主要介紹了ssm框架上傳圖片保存到本地和數(shù)據(jù)庫(kù)示例,主要使用了Spring+SpringMVC+MyBatis框架集合,有興趣的可以了解一下。2017-03-03
idea2020.2卡死在reading maven projects
這篇文章主要介紹了idea2020.2卡死在reading maven projects,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java中實(shí)現(xiàn)線程的超時(shí)中斷方法實(shí)例
之前在使用Java實(shí)現(xiàn)熔斷降級(jí)組件的時(shí)候,需要實(shí)現(xiàn)接口請(qǐng)求的超時(shí)中斷,通過(guò)查找相關(guān)資料了解了相關(guān)的方法,下面這篇文章主要給大家介紹了關(guān)于Java中實(shí)現(xiàn)線程的超時(shí)中斷的相關(guān)資料,需要的朋友可以參考下2018-06-06
解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問(wèn)題
這篇文章主要介紹了MyBatisPlus解決邏輯刪除與唯一索引的兼容問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04

