经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
springboot~mybatis里localdatetime序列化问题
来源:cnblogs  作者:张占岭  时间:2018/10/9 10:16:06  对本文有异议

问题起因

主要是使用mybatis作为ORM之后,返回的对象为Map,然后对于数据库的datetime,datestamp类型返回为时间戳而不是标准的时间,这个问题解决方案有两种,大叔分析一下:

  1. 在mapper的select里,使用mysql这些数据库的函数,dateformat进行转化,缺点,单元测试里使用h2数据库时会找不到这些函数
  2. 在ObjectMapper反序列化时统一进行处理,这种方式更好,与具体数据库解耦了

实现

引用依赖包

  1. 'org.mybatis:mybatis-typehandlers-jsr310:1.0.2',
  2. 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.2'

添加组件类

  1. /**
  2. * 序列化localdatetime处理.
  3. */
  4. @Component
  5. public class JacksonConfig {
  6. /**
  7. * 注入时间处理.
  8. *
  9. * @return
  10. */
  11. @Bean
  12. @Primary
  13. public ObjectMapper objectMapper() {
  14. ObjectMapper mapper = new ObjectMapper();
  15. mapper.registerModule(new JSR310Module());
  16. mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
  17. return mapper;
  18. }
  19. }

成功解决问题

  1. {
  2. "pageCurrent": 1,
  3. "pageSize": 10,
  4. "pageTotal": 1,
  5. "data": [
  6. {
  7. "freeDays": 8,
  8. "city": "",
  9. "leadingPerson": "",
  10. "contactPerson": "zhangsan",
  11. "source": 1,
  12. "customerName": "i-counting",
  13. "intention": 1,
  14. "province": "",
  15. "appointmentTime": "2018-09-20T00:00:00.000Z",
  16. "createTime": "2018-09-27T06:33:49.000Z",
  17. "telephoneStatus": 1,
  18. "id": 10000,
  19. "contactPhone": "135"
  20. }
  21. ]
  22. }
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号