时间的问题总结

要点

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

posted @ 2021-12-13 23:08  指掀涛澜  阅读(61)  评论(0编辑  收藏  举报