1.問題的出現
mybatisPlus版本3.2.0
3.0以上默認時間爲LocalDateTime ,在使用sql查詢的時候會出現
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是自己的轉換類,繼承的是mybatis的轉換類
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){//在這裏強行轉換,將sql的時間轉換爲LocalDateTime
return LocalDateTime//可以根據自己的需要進行轉化
.ofInstant(((Timestamp)object).toInstant(), ZoneOffset.ofHours(0));
}
return super.getResult(rs, columnName);
}
}
解決辦法可行
解決辦法3:
在網上搜索的半天,發現是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發現問題已經解決,
於是將版本切換到1.1.20,發現臥槽,還真的有,問題解決
僅此記錄。
本文爲作者原創,轉載請申請!