前言

使用mybatis难免会碰到返回时间类的问题。这里简单记录下学习总结。

现状

如果什么都不做,那么返回的类型

关于mybatis返回前端日期格式化问题_json


这个样式肯定不算我们想要的结果,但是先细想一下怎么处理,不至于在前端一堆js,后端遍历list去完成吧,肯定有解决的好办法吧。

解决

对于pojo对象

直接在pojo对象中加入过滤即可

import com.fasterxml.jackson.annotation.JsonFormat;
---
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createtime;

以来jackson包,但现在基本都支持这个包,你也可以使用fastjson来处理。这样返回的数据就能满足要求

关于mybatis返回前端日期格式化问题_mybatis_02

对于自定义map

可能有很多场景是通过自定义的map返回,比如一些关联查询,可能没有作多级联合,在sql中使用的简单的关联查询,对于这种情况,返回的类型和pojo类无关,需要我们在sql语句中进行处理。

@Select("select e.name,d.* from(SELECT a.`no`,a.classID,a.studentno,b.ID scoreid,b.score," 
"DATE_FORMAT(b.time,'%Y-%m-%d %h:%m:%s') as time,b.note "
"from studentclass a "
"LEFT JOIN score b "
"on a.studentno=b.studentno "
"and b.jobID=#{jobid} "
"where a.classID =(SELECT teachclassid FROM job WHERE ID=#{jobid}) "
"ORDER BY a.`no` asc)d,student e "
"WHERE d.studentno=e.studentno")
List getscorebyjobid(int jobid);

关于mybatis返回前端日期格式化问题_关联查询_03


就是格式化日期的代码。同理,如果插入的代码string格式不对,你可以使用java的date类simpledateformat转换成date也可以直接根据格式转换,这里就不具体介绍。经过这样的转换,我们就能拿到想要的格式。

关于mybatis返回前端日期格式化问题_mybatis_04


这样就能解决大部分的场景需求。如果日后遇到其他处理方式,会进行补充。如有错误,会进行更正!

如果对​​后端、爬虫、数据结构算法​​​等感性趣欢迎关注我的个人公众号交流:​​bigsai​