当我在用javaee编写条件分页查询的时候,平时开发中老是写差不多的代码,比较繁琐,故自己总结了一套解决方案。
这是一套专门针对Oracle数据库和SpringMvc和Mybatis框架中条件、分页查询的方案。本文重点不是讲分页,而是将如何使用我自己写的工具类快速多种条件查询。
优点:
1、使用超级简单,该方案帮你解决了mybatis中的where 条件的sql语句,因此你不需要写 where语句。
2、后期拓展非常方便,只需要在jsp页面中编写html标签,添加条件即可。
3、比较强大,几乎所有Oracle的数据类型都支持(二进制除外),还可进行排序操作。
使用方法:
步骤一、首先编写jsp或html页面,按照规定格式写表单的name属性,
格式:name = “前缀 _ 查询类型关键字 _ 要查询数据库中的字段名” , 如下代码
<th class="input_title">
联系人
</th>
<td class="input_content">
<input type="text" name="search_LIKE_contact" value="${requestScope.parameterMap.LIKE_contact }"/>
</td>
</tr>
<tr>
<th>
编号范围
</th>
<td>
最小值:<input type="text" style="width: 50" name="search_GE_id" value="${requestScope.parameterMap.GE_id }"/>
<br>最大值:<input type="text" style="width: 50" name="search_LE_id" value="${requestScope.parameterMap.LE_id }"/>
</td>
如上:name="search_LIKE_contact" 的含义 :
search: 前缀,可任意合法命名的字符串,每个条件的前缀要一致。
下划线 "_": 分隔符
LIKE :表示要查询数据库中某列包含某个值的记录。
contact :表示要查询的字段是contact ,
需要注意的是,如果表中字段名中有下划线,要字 段名转为驼峰命名法,比如:表中字段名:create_date 转为页面中name属性中的:createDate。
如果针对日期进行查询 :
比如 年份如下 :
<input type="text" name="search_EQ@yyyy_createDate" style="width: 40"/>
EQ :表示等于
@:是当要查询日期时,在查询类型关键字后加的分隔符,@后跟上日期的格式
yyyy :表示 年, mm :表示 月份, dd :表示天数
HH24 :表示24小时制的小时, mi:表示分钟 ,ss:表示秒数
这个日期格式