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,還真的有,問題解決
到此這篇關(guān)于mybatisPlus使用LocalDateTime轉(zhuǎn)化異常的實現(xiàn)的文章就介紹到這了,更多相關(guān)mybatisPlus LocalDateTime轉(zhuǎn)化異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot處理全局統(tǒng)一異常的兩種方法與區(qū)別
這篇文章主要給大家介紹了關(guān)于Spring Boot處理全局統(tǒng)一異常的兩種方法與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06
java.text.DecimalFormat類十進制格式化
這篇文章主要為大家詳細介紹了java.text.DecimalFormat類十進制格式化的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
SpringBoot實現(xiàn)導(dǎo)出復(fù)雜對象到Excel文件
這篇文章主要為大家詳細介紹了如何使用Hutool和EasyExcel兩種方式來實現(xiàn)在Spring Boot項目中導(dǎo)出復(fù)雜對象到Excel文件,需要的小伙伴可以參考下2025-03-03
java WSDL接口webService實現(xiàn)方式
這篇文章主要為大家詳細介紹了java WSDL接口webService實現(xiàn)方式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

