zoukankan      html  css  js  c++  java
  • 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
    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"
            }
        ]
    }
    
  • 相关阅读:
    iOS 开发之粒子效果
    ios 中使用SBJson拼接和解析json
    iphone document 图片存储和读取
    ios项目绕过证书访问https程序
    我应该直接学Swift还是Objective-C?
    iOS中使用 Reachability 检测网络
    iOS App性能优化
    iOS中的堆(heap)和栈(stack)的理解
    iOS中引用计数内存管理机制分析
    iOS多线程编程Part 3/3
  • 原文地址:https://www.cnblogs.com/lori/p/9755985.html
Copyright © 2011-2022 走看看