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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。