springboot mybatis里localdatetime序列化问题的解决
问题起因
主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下:
1.在mapper的select里,使用mysql这些数据库的函数,dateformat进行转化,缺点,单元测试里使用h2数据库时会找不到这些函数
2.在ObjectMapper反序列化时统一进行处理,这种方式更好,与具体数据库解耦了
实现
>引用依赖包
'org.mybatis:mybatis-typehandlers-jsr310:1.0.2', 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.2'
>添加组件类
/**
*序列化localdatetime处理.
*/
@Component
publicclassJacksonConfig{
/**
*注入时间处理.
*
*@return
*/
@Bean
@Primary
publicObjectMapperobjectMapper(){
ObjectMappermapper=newObjectMapper();
mapper.registerModule(newJSR310Module());
mapper.setDateFormat(newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
returnmapper;
}
}
>成功解决问题
{
"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"
}
]
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。