springboot mybatis里localdatetime序列化問題的解決
問題起因
主要是使用mybatis作為ORM之后,返回的對象為Map,然后對于數(shù)據(jù)庫的datetime,datestamp類型返回為時間戳而不是標準的時間,這個問題解決方案有兩種,大叔分析一下:
1.在mapper的select里,使用mysql這些數(shù)據(jù)庫的函數(shù),dateformat進行轉化,缺點,單元測試里使用h2數(shù)據(jù)庫時會找不到這些函數(shù)
2.在ObjectMapper反序列化時統(tǒng)一進行處理,這種方式更好,與具體數(shù)據(jù)庫解耦了
實現(xiàn)
>引用依賴包
'org.mybatis:mybatis-typehandlers-jsr310:1.0.2', 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.2'
>添加組件類
/**
* 序列化localdatetime處理.
*/
@Component
public class JacksonConfig {
/**
* 注入時間處理.
*
* @return
*/
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
return mapper;
}
}
>成功解決問題
{
"pageCurrent": 1,
"pageSize": 10,
"pageTotal": 1,
"data": [
{
"freeDays": 8,
"city": "",
"leadingPerson": "",
"contactPerson": "zhangsan",
"source": 1,
"customerName": "i-counting",
"intention": 1,
"province": "",
"appointmentTime": "2018-09-20T00:00:00.000Z",
"createTime": "2018-09-27T06:33:49.000Z",
"telephoneStatus": 1,
"id": 10000,
"contactPhone": "135"
}
]
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
springboot+Oauth2實現(xiàn)自定義AuthenticationManager和認證path
本篇文章主要介紹了springboot+Oauth2實現(xiàn)自定義AuthenticationManager和認證path,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
詳解用Spring Boot零配置快速創(chuàng)建web項目
本篇文章主要介紹了詳解用Spring Boot零配置快速創(chuàng)建web項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
ConditionalOnProperty注解的作用和使用方式
在SpringBoot項目開發(fā)中,@ConditionalOnProperty注解允許根據(jù)配置文件中的屬性值來控制配置類是否生效,該注解通過屬性name和havingValue來判斷配置是否注入,如果application.properties中的對應屬性值為空或不匹配havingValue設定值2024-09-09
Spring Security 使用 OncePerRequestFilter
OncePerRequestFilter是一個過濾器,每個請求都會執(zhí)行一次;一般開發(fā)中主要是做檢查是否已登錄、Token是否過期和授權等操作,而每個操作都是一個過濾器,下面介紹Spring Security 使用 OncePerRequestFilter 過濾器校驗登錄過期、請求日志等操作方法,感興趣的朋友一起看看吧2024-06-06

