博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ibatis动态SQL语句
阅读量:5812 次
发布时间:2019-06-18

本文共 2184 字,大约阅读时间需要 7 分钟。

 动态SQL语句

1)二元条件元素的属性:
    prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
    property  - 被比较的属性(必选)
    compareProperty  -  另一个用于和前者比较的属性(必选或选择 compareValue)
    compareValue  -  用于比较的值(必选或选择 compareProperty)
<isEqual>                  比较属性值和静态值或另一个属性值是否相等。
<isNotEqual>          比较属性值和静态值或另一个属性值是否不相等。
<isGreaterThan>      比较属性值是否大于静态值或另一个属性值。
<isGreaterEqual>  比较属性值是否大于等于静态值或另一个属性值。
<isLessThan>          比较属性值是否小于静态值或另一个属性值。
<isLessEqual>          比较属性值是否小于等于静态值或另一个属性值。
例子:
<isLessEqual prepend=”AND” property=”age” compareValue=”18”>
    ADOLESCENT = 'TRUE'
</isLessEqual>
 
2)一元条件元素的属性:
    prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
    property  - 被比较的属性(必选)
<isPropertyAvailable>          检查是否存在该属性(存在 parameter bean 的属性) 。
<isNotPropertyAvailable>  检查是否不存在该属性(不存在 parameter bean 的属性) 。
<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)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,以防解析器简单地将List输出成String。

例如:

<dynamic prepend="and ("> <isNotNull prepend="or" property="bookMainNames"> b.albumnamemain like <iterate property="bookMainNames" conjunction="or b.booknamemain like"> '%$bookMainNames[]$%' </iterate> </isNotNull> <isNotNull prepend="or" property="bookNameApposes"> b.bookNameAppose like <iterate property="bookNameApposes" conjunction="or b.bookNameAppose like"> '%$bookNameApposes[]$%' </iterate> </isNotNull> <isNotNull prepend="or" property="bookNameVices"> b.bookNameVice like <iterate property="bookNameVices" conjunction="or b.bookNameVice like"> '%$bookNameVices[]$%' </iterate> </isNotNull>

 

转载于:https://www.cnblogs.com/jpa2/archive/2011/10/10/2527505.html

你可能感兴趣的文章
C++:成员运算符重载函数和友元运算符重载函数的比较
查看>>
[Polymer] Introduction
查看>>
【iCore3 双核心板】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
查看>>
前端技术的发展和趋势
查看>>
Android文件下载之进度检测
查看>>
重构第10天:提取方法(Extract Method)
查看>>
吐血整理 Delphi系列书籍 118本(全)
查看>>
Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
查看>>
解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
查看>>
“Info.plist” couldn’t be removed
查看>>
Linux创建系统用户
查看>>
多线程day01
查看>>
JSON path
查看>>
Win8 Metro(C#)数字图像处理--2.43图像马赛克效果算法
查看>>
动画库NineOldAndroids
查看>>
react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
查看>>
大数据开发实战:Hadoop数据仓库开发实战
查看>>
Spring Boot 2中对于CORS跨域访问的快速支持
查看>>
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
matlab fread
查看>>