时间的问题总结
要点
1、数据库时间,实体和Mybatis数据类型之间的对应关系
2、前端传日期还是字符串
3、时间格式化(用注解的方式如何去写,出参、入参如何格式化?)
4、大于、小于在Mybatis中如何写
code
实体中的写法
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
在Mapper.xml 中
<select id="query" resultMap="departmentMap">
SELECT * FROM department where 1=1
<if test="createTime !=null">
AND create_time = #{createTime}
</if>
<if test="updateTime !=null">
AND update_time = #{updateTime}
</if>
</select>
或者
<select id="query" resultMap="departmentMap">
SELECT * FROM department where 1=1
<if test="endTime != null">
AND PREPARATION_TIME <![CDATA[<=]]> #{endTime}
</if>
<if test="startTime != null">
AND PREPARATION_TIME <![CDATA[>=]]> #{startTime}
</if>
</select>
总结
1、时间一般是范围查询,前端传时间类型比较好,可以直接比较
2、实体写Date类型,xml层直接进行比较或赋值。
3、数据类型:数据库datetime ,实体Date,Mybatis的映射ResultMap 中可以省略时间类型
4、格式化: 入参格式化,@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 前端传的是字符串
出参格式化,@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
心如止水,虚怀如谷