本篇内容主要讲解“动态Mapped Statement在iBATIS中怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“动态Mapped Statement在iBATIS中怎么应用”吧!
先看看实例:
Java代码
﹤select id="dynamicGetAccountList" cacheModel="account-cache" resultMap="account-result"﹥ select * from ACCOUNT ﹤isGreaterThan prepend="and" property="id" compareValue="0"﹥ where ACC_ID=#id# ﹤/isGreaterThan﹥ order by ACC_LAST_NAME ﹤/select﹥
例子说明:
如果值小于0,那么sql语句就是:
Java代码
select * from ACCOUNT order by ACC_LAST_NAME
动态Mapped Statement应用更复杂的例子:
Java代码
﹤select id="dynamicGetAccountList" resultMap="account-result"﹥ select * from ACCOUNT ﹤dynamic prepend="WHERE"﹥ ﹤isNotNull prepend="AND" property="firstName"﹥ (ACC_FIRST_NAME=#firstName# ﹤isNotNull prepend="OR" property="lastName"﹥ ACC_LAST_NAME=#lastName# ﹤/isNotNull﹥ ) ﹤/isNotNull﹥ ﹤isGreaterThan prepend="and" property="id" compareValue="0"﹥ ACC_ID=#id# ﹤/isGreaterThan﹥ ﹤/dynamic﹥ order by ACC_LAST_NAME ﹤/select﹥
动态Mapped Statement实例注解:
prepend:可被覆盖的SQL语句组成部分
property:被比较的属性
compareProperty:另一个用于和前者比较的属性
compareValue用于比较的值
﹤isEqual﹥
﹤isNotEqual﹥
﹤isGreaterThan﹥
﹤isGreaterEqual﹥
﹤isLessThan﹥
﹤isLessEqual﹥
﹤isPropertyAvailable﹥:检查是否存在该属性
﹤isNotPropertyAvailable﹥:
﹤isNull﹥:检查属性是否为null
﹤isNotNull﹥
﹤isEmpty﹥:检查Collection.size()的值,属性String或String.valueOf()值是否为null或空
﹤isNotEmpty﹥:
﹤isParameterPresent﹥:检查是否存在参数对象(不为null)
﹤iterate﹥遍历集合:
Java代码
﹤iterate prepend="and" property="userNameList" open="(" close=")" conjunction="or"﹥ username=#userNameList[]# ﹤/iterate﹥
property属性:类型为java.util.List的用于遍历的元素
open属性:整个遍历内容开始的字符串,用于定义括号
close属性:整个便利内容结束的字符串
conjunction:每次遍历内容之间的字符串,用于定义AND或OR
到此,相信大家对“动态Mapped Statement在iBATIS中怎么应用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。