动态Mapped Statement在iBATIS中应用
创始人
2024-04-18 14:00:14
0

动态Mapped Statement是如何在iBATIS中应用呢?让我们先看看实例:
 
Java代码

  1. ﹤select id="dynamicGetAccountList" cacheModel="account-cache" resultMap="account-result"﹥  
  2.   select * from ACCOUNT  
  3.   ﹤isGreaterThan prepend="and" property="id" compareValue="0"﹥  
  4.       where ACC_ID=#id#  
  5.   ﹤/isGreaterThan﹥  
  6.   order by ACC_LAST_NAME  
  7. ﹤/select﹥ 

例子说明:

如果值小于0,那么sql语句就是:
 
Java代码

  1. select * from ACCOUNT     
  2. order by ACC_LAST_NAME   

动态Mapped Statement应用更复杂的例子:
 
Java代码

  1. ﹤select id="dynamicGetAccountList"  resultMap="account-result"﹥     
  2.   select * from ACCOUNT     
  3.   ﹤dynamic prepend="WHERE"﹥     
  4.     ﹤isNotNull prepend="AND" property="firstName"﹥     
  5.      (ACC_FIRST_NAME=#firstName#     
  6.      ﹤isNotNull prepend="OR" property="lastName"﹥     
  7.        ACC_LAST_NAME=#lastName#     
  8.      ﹤/isNotNull﹥     
  9.      )     
  10.     ﹤/isNotNull﹥     
  11.     ﹤isGreaterThan prepend="and" property="id" compareValue="0"﹥     
  12.       ACC_ID=#id#     
  13.     ﹤/isGreaterThan﹥     
  14.   ﹤/dynamic﹥     
  15.   order by ACC_LAST_NAME     
  16. ﹤/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代码

  1. ﹤iterate prepend="and" property="userNameList" open="(" close=")" conjunction="or"﹥     
  2.   username=#userNameList[]#     
  3. ﹤/iterate﹥   

property属性:类型为java.util.List的用于遍历的元素

open属性:整个遍历内容开始的字符串,用于定义括号

close属性:整个便利内容结束的字符串

conjunction:每次遍历内容之间的字符串,用于定义AND或OR

动态Mapped Statement在iBATIS中的应用就向你介绍到这里,对它了解些了么?

【编辑推荐】

  1. iBATIS入门程序六大步详解
  2. iBATIS DAO事务浅析
  3. iBATIS使用$和#的一些理解
  4. iBATIS分页的一些理解
  5. iBATIS应用之SQLMap API编程浅析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...