ibatis的sql配置文件--条件元素。
来源:互联网 发布:眼镜哪个牌子好 知乎 编辑:程序博客网 时间:2024/05/09 00:44
转自:http://blog.csdn.net/winy_lm/article/details/48177137
ibatis--条件元素:
下面要讲的内容在日常工作中经常用到,而少有人真正明白为什么这么用,希望大家仔细学习,能够做到知其然知其所以然。
动态标签的作用是动态构建SQL语句,根据不同的一元或二元运算条件构建复杂的SQL语句,
省去了IF-ELSE条件语句和一连串的字符串连接。
先看一个动态SQL的例子:
上面的例子中,<dynamic>元素划分出SQL语句的动态部分。动态部分可以包含任意多的条件元素,条件元素决定是否在语句中包含其中的SQL代码。
Ibatis中,条件元素包含以下几种:二元条件、一元条件和其他条件元素:
1) 二元条件元素:将一个属性值和静态值或另一个属性值比较,如果条件为真,元素将被包容在查询SQL语句中。
二元条件元素的属性:
perpend——可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
property——是比较的属性(必选)
compareProperty——另一个用于和前者比较的属性(必选或选择compareValue)
compareValue——用于比较的值(必选或选择compareProperty)
<isEqual>
比较属性值和静态值或另一个属性值是否相等。
<isNotEqual>
比较属性值和静态值或另一个属性值是否不相等。
<isGreaterThan>
比较属性值是否大于静态值或另一个属性值。
<isGreaterEqual>
比较属性值是否大于等于静态值或另一个属性值。
<isLessThan>
比较属性值是否小于静态值或另一个属性值。
<isLessEqual>
比较属性值是否小于等于静态值或另一个属性值。
举个小例子:如果小于等18岁时,则为成年人
<isLessEqual prepend=”AND” property=”age” compareValue=”18”>
ADOLESCENT = ‘TRUE’
</isLessEqual>
2) 一元条件元素:一元条件元素检查属性的状态是否符合特定的条件。
一元条件元素的属性:
prepend——可被覆盖的SQL语句组成部分,添加在语句前面(可选)
property——被比较的属性(必选)
<isNull>
检查属性是否为null
<isNotNull>
检查属性是否不为null
<isEmpty>
检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size() < 1)
<isNotEmpty>
检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size() > 0)
举例:
<isNotEmpty prepend="AND" property="firstName" >
FIRST_NAME=#firstName#
</isNotEmpty>3) 其他元素条件
a) Parameter Present:这些元素检查参数对象是否存在
prepend -可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
<isParameterPresent>
检查是否存在参数对象(不为null)
<isNotParameterPresent>
例子:
<isNotParameterPresent prepend=”AND”>
EMPLOYEE_TYPE = ‘DEFAULT’
</isNotParameterPresent>
b) Iterate:这属性遍历整个集合,并为List集合中的元素重复元素体的内容。
Iterate的属性:
prepend -可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
property -类型为java.util.List的用于遍历的元素(必选)
open -整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction -每次遍历内容之间的字符串,用于定义AND或OR(可选)
<iterate>
遍历类型为java.util.List的元素。
例子:
<iterate prepend="AND" property="userNameList" open="(" close=")" conjunction="OR">
username=#userNameList[]#
</iterate>
注意:使用<iterate>时,在List元素名后面包括方括号[]十分重要,方括号[]将对象标记为List,不写[]则会解析成String。
上面介绍了ibatis动态SQL的标签,不能一一对上面的标签进行举例,在日常工作中能够熟练掌握。
- ibatis的sql配置文件--条件元素。
- 收集下IBATIS动态的条件元素
- ibatis--条件元素
- IBatis框架的SQL Map配置文件
- 5.IBatis框架的SQL Map配置文件
- Ibatis 动态条件SQL语句
- Ibatis 动态条件SQL语句
- Ibatis 动态条件SQL语句
- ibatis里面sql语句中条件使用like的写法
- ibatis配置文件写sql语句
- 显示ibatis底层sql语句的log4j配置文件
- ibatis和myBatis打印sql语句的log4j配置文件
- iBatis的配置文件setting
- [Java][ibatis]条件SQL写法示例
- ibatis 的多条件查询
- ibatis的sql配置文件sql.xml大于小于等于的写法
- ibatis配置文件sql-map-config.xml
- Ibatis SQL配置文件.xml中文乱码处理
- 第三方登录facebook登录简单集成iOS APP超详细教程
- jarsigner对未签名的apk进行签名
- java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
- 记录一下jstl的报错问题,很容易忘记
- CentOS6.5下安装JDK1.8
- ibatis的sql配置文件--条件元素。
- 网易2017内推笔试题目
- Java与算法之(13) - 二叉搜索树
- 《Linux设备驱动开发详解》--Linux内核模块
- jpa 分页问题
- 又被忽悠了,互联网创业的陷阱你遇到了吗
- unescape,decodeURI,decodeURIComponent
- 机器学习技法作业三题目16-18
- Shell命令学习(三)