mybatis mysql 序列化_springboot~mybatis里localdatetime序列化问题

问题起因

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

在mapper的select里,使用mysql这些数据库的函数,dateformat进行转化,缺点,单元测试里使用h2数据库时会找不到这些函数

在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"

}

]

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值