转载

ibatis 动态查询条件(整理版)

iBATIS:
一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架.
BATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。

动态查询:
在复杂查询过程中,我们常常需要根据用户的选择决定查询条件,这里发生变化的
并不只是SQL 中的参数,包括Select 语句中所包括的字段和限定条件,都可能发生变
化。典型情况,如在一个复杂的组合查询页面,我们必须根据用户的选择和输入决定查
询的条件组合。

ibatis动态查询条件:
<select id="SelectEemployee" parameterClass="string" resultMap = "employee-result">
           select * from employee
//动态SQL语句
            <dynamic prepend="WHERE">
               <isParameterPresent>
                     emp_id = #value#
               </isParameterPresent>
            </dynamic>
       </select>
    </statements>
</sqlMap>     
/*动态SQL的写法:
开始 <dynamic
条件成立时前面要加的字符串 prepend ="字符串">
<属性关键字 (见下表)
prepend="字符串"
判断条件的对象属性名 property="字符串"
如果是属性关键字是比较条件时,字符串存放要比较的值compareValue="字符串">
要显示的条件名
</属性关键字>
结束</dynamic>
*/
/*动态SQL的参数有
属性关键字
 含义
 
<isEqual>
 如果参数相等于值则查询条件有效。
 
<isNotEqual>
 如果参数不等于值则查询条件有效。
 
<isGreaterThan>
 如果参数大于值则查询条件有效。
 
<isGreaterEqual>
 如果参数等于值则查询条件有效。
 
<isLessEqual>
 如果参数小于值则查询条件有效。如下所示:
<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >
ADOLESCENT = ‘TRUE’
</isLessEqual>
 
<isPropertyAvailable>
 如果参数有使用则查询条件有效。
 
<isNotPropertyAvailable>
 如果参数没有使用则查询条件有效。
 
<isNull>
 如果参数为NULL则查询条件有效。
 
<isNotNull>
 如果参数不为NULL则查询条件有效。
 
<isEmpty>
 如果参数为空则查询条件有效。
 
<isNotEmpty>
 如果参数不为空则查询条件有效。参数的数据类型为Collection、String 时参数不为NULL或“”。如下所示:
<isNotEmpty prepend=”AND” property=”firstName” >
FIRST_NAME=#firstName#
</isNotEmpty>
 
<isParameterPresent>
 如果参数类不为NULL则查询条件有效。
 
<isNotParameterPresent>
 Checks to see if the parameter object is not present (null). Example Usage:
<isNotParameterPresent prepend=”AND”>
EMPLOYEE_TYPE = ‘DEFAULT’
</isNotParameterPresent>

本文由ajava.org会员小末丶g提供,mark整理发布,本文有部分内容转自其他网友文章。


正文到此结束
Loading...