mybatisPlus使用LocalDateTime轉(zhuǎn)化異常的實現(xiàn)
1.問題的出現(xiàn)
mybatisPlus版本3.2.0
3.0以上默認時間為LocalDateTime ,在使用sql查詢的時候會出現(xiàn)
druid版本
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </dependency>
@ApiModelProperty(value = "添加時間") private LocalDateTime createTime; /** * 更新時間 */ @ApiModelProperty(value = "更新時間") private LocalDateTime updateTime;
查詢最后報錯
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
2.解決
解決方式一:
在映射的result里面或者resultMap里面配置
@Result(column="create_time", property="createTime",javaType = LocalDateTime.class,jdbcType = JdbcType.DATE), @Result(column="update_time", property="updateTime",javaType = LocalDateTime.class,jdbcType = JdbcType.DATE),
失敗
解決辦法二:
@Result(column="create_time", property="createTime",javaType = LocalDateTime.class, jdbcType = JdbcType.DATE,typeHandler = MyLocalDateTimeTypeHandler.class), @Result(column="update_time", property="updateTime",javaType = LocalDateTime.class, jdbcType = JdbcType.DATE,typeHandler = MyLocalDateTimeTypeHandler.class),
這里的MyLocalDateTimeTypeHandler是自己的轉(zhuǎn)換類,繼承的是mybatis的轉(zhuǎn)換類
public class MyLocalDateTimeTypeHandler extends LocalDateTimeTypeHandler { @Override public LocalDateTime getResult(ResultSet rs, String columnName) throws SQLException { Object object = rs.getObject(columnName); System.out.println(object); if(object instanceof java.sql.Timestamp){//在這里強行轉(zhuǎn)換,將sql的時間轉(zhuǎn)換為LocalDateTime return LocalDateTime//可以根據(jù)自己的需要進行轉(zhuǎn)化 .ofInstant(((Timestamp)object).toInstant(), ZoneOffset.ofHours(0)); } return super.getResult(rs, columnName); } }
解決辦法可行
解決辦法3:
在網(wǎng)上搜索的半天,發(fā)現(xiàn)是druid的問題,于是把源碼拉下來了,自己打包
<dependency>//自己打包的版本 <groupId>com.git</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version> </dependency> <dependency> <groupId>com.git</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency>
剛準備改進一下,進行rq發(fā)現(xiàn)問題已經(jīng)解決,
于是將版本切換到1.1.20,還真的有,問題解決
到此這篇關于mybatisPlus使用LocalDateTime轉(zhuǎn)化異常的實現(xiàn)的文章就介紹到這了,更多相關mybatisPlus LocalDateTime轉(zhuǎn)化異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java利用udp實現(xiàn)發(fā)送數(shù)據(jù)
這篇文章主要為大家詳細介紹了java利用udp實現(xiàn)發(fā)送數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07Spring過濾器中OncePerRequestFilter應用實現(xiàn)
OncePerRequestFilter是Spring框架提供的一個過濾器基類,本文就來介紹一下Spring過濾器中OncePerRequestFilter應用實現(xiàn),感興趣的可以了解一下2024-12-12Maven依賴中scope的runtime和provied的區(qū)別及說明
這篇文章主要介紹了Maven依賴中scope的runtime和provied的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Java 中文字符按Unicode排序的實現(xiàn)方法
這篇文章主要介紹了Java 中文字符按Unicode排序的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-10-10