Just do IT

纸上得来终觉浅 绝知此事要躬行

原创 用ibatis写时间间隔的动态查询收藏

最直接的方法是利用oracle中sql语句中的to_date,例如:
 <dynamic prepend="where">
  <isNotEmpty prepend="and" property="userName">
  userName=#userName#
  </isNotEmpty>
  <isNotEmpty prepend="and" property="fromDate">
  <![CDATA[dateTime>=to_date(#fromDate#,'YYYY-MM-DD hh:mi:ss')]]>
  </isNotEmpty>
  <isNotEmpty prepend="and" property="toDate">
  <![CDATA[dateTime<=to_date(#toDate#,'YYYY-MM-DD hh:mi:ss')]]>
  </isNotEmpty>
  </dynamic>

再有方法就是把你的数据用simpleDateFormat格成Date传进去,例如:
<dynamic prepend="where" removeFristPrepend="true"> 
  <isNotEmpty prepend="and" property="userName"> 
  userName=#userName# 
  </isNotEmpty> 
  <isNotEmpty prepend="and" property="fromDate"> 
  markDate>#fromDate# 
  </isNotEmpty> 
  <isNotEmpty prepend="and" property="toDate"> 
  <![CDATA[ 
  markDate <#toDate# 
  ]]> 
  </isNotEmpty> 
  </dynamic> 
用simpleDateFormat格成Date 
  SimpleDateFormat tools = new SimpleDateFormat("yyyy-MM-dd");
  Map map=new HashMap(); 
  map.put("userName",userName); 
  map.put("fromDate",tools.parse(fromDate)); 
  map.put("toDate",tools.parse(toDate)); 
  sqlMapClient.queryForList("searchMessage",map);

发表于 @ 2008年11月06日 20:46:00|评论(loading...)|收藏

新一篇: weblogic启动报ClassNotFoundException: org.hibernate.hql.ast.HqlToken  | 旧一篇: ibatis 组装SQL动态排序

Csdn Blog version 3.1a
Copyright © 小树