ibatis 日期格式比较

来源:互联网 发布:淘宝图片批量处理软件 编辑:程序博客网 时间:2024/05/23 01:20

环境

数据库:Oracle 11g
编程语言:Java
持久层框架:IBatis

背景

数据库表A中有date型字段 create_date,存储的是日期格式是年月日时分秒:YYYY/MM/DD HH:MM:SS, 然后我我想通过java传参,按照日期区间(日期区间假设为begin_date,end_date)进行比较

实现方式

  1. 先将参数格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// 将日期转换成字符串String dateStr = sdf.format(date);Map map = new HashMap();map.put("dateStr", dateStr);
  1. Sql编写
在ibatis查询配置中添加:<isNotEmpty prepend="AND" property="begin_date"><![CDATA[to_char(CREATE_TIME,'yyyy-mm-dd') >= '$begin_date$']]></isNotEmpty><isNotEmpty prepend="AND" property="end_date"><![CDATA[to_char(CREATE_TIME,'yyyy-mm-dd') <= '$end_date$']]></isNotEmpty>

注意事项

  1. 一定用$符号去做配置,不能用#,用#会去结合数据库实例是否存在对应的属性,导致查询异常
  2. 可以不使用
&lt;       < &gt;       >  &lt;&gt;   <>&amp;      & &apos;     '&quot;     "
0 0