对ibatis标签<iterate>的理解,在看ibatis文档时,就看见过这个标签,并且还
对其不是很了解,一直没有到现在,在工作中用到了这个标签时,
才去了解了一下这个标签的具体含义。
先把文档中对该标签的介绍贴出来一起分享。
��� 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。
我本人对上面<iterate>标签中内容的理解如下:
在生成该条sql语句时,<iterate>标签中的内容是循环生成的,就拿上面的例子来说,生成的sql是
(username=xxx1 or username=xxx2 or username=xxx 3)
而不是(username=xxx1 or xxx2 or xxx3)
再举个例子,如下:
id in
<iterate prepend="" property="ids" open="(" close=")" conjunction="," >
#ids[]#
</iterate> 。。。。。。。(1)
其生成的sql语句是:id in (xx1,xx2,xx3,.....),括号中的(包括括号)是<iterate>标签生成的。
<iterate>标签虽然是遍历整个集合的,但他也不象我们在java中用到的for一样,一次一次的
循环生成标签中的内容,而是一次性利用list或数组生成整个可运行的sql语句。
就好比(1)它生成的sql不可能象这样:id in (xx1)
id in (xx2) ,id in (xx3),.....
分享到:
相关推荐
NULL 博文链接:https://duqiangcise.iteye.com/blog/286764
iBATIS动态标签 §<dynamic>标签 §二元标签 §一元标签 §<iterate>标签 § 共同的属性 prepend,open,close <dynamic>标签 §<dynamic>标签 §属性 prepend,open,close 二元条件标签
DOCTYPE sqlMapConfig<br>PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"<br>"http://www.ibatis.com/dtd/sql-map-config-2.dtd"><br><sqlMapConfig><br><settings<br>cacheModelsEnabled="true"<br>...
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>classpath:SqlMapConfig.xml</value> </property> </bean> <bean id=...
720<br>1.59<br><br>1.53<br><br><br><br><br>表II –50并发4循环(数据库和测试机分开)<br><br>对比项目<br>iBatis2.0<br><br>(毫秒)<br>AppFramework<br><br>(毫秒)<br>后者前者性能对比<br><br>(倍)<br>...
也就是说,ibatis<br>并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映<br>射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。<br>使用ibatis 提供的ORM机制,对业务...
<br>ext学习笔记一<br>小试iBatis<br>RIA(Rich Internet Application)的现状和未来<br>Java应用中域名解析不过期的解决方法<br>Java编程那些事儿45—数组使用示例1<br>一步步熟悉OFBiz<br>用Java做客户端调用.NET写...
功能:当你建立好数据库,写好javabean,就可以用这个工具来为你的javabean和数据库之间做一个映射.<br>当然这个映射只是一个大致的模板,很多时候你可能要稍做修改.但是也为你节约了很多的时间.<br><br>使用方法:<br>1....
<br>用Mysql和Ibatis实现数据的持久化。<br>系统具有传统论坛的基本功能,更多功能有待进一步的完善。<br><br>更多请访问:http://www.yyhweb.com<br>由由华网版权所有<br>作者:stephen<br>QQ:7348002<br>
<br> 本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及...
<br>本书内容:<br>·使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层;<br>·声明式事务与事务管理;<br>·与其他Web框架集成:Struts、WebWork、Tapestry、Velocity;<br>·访问J2EE服务,如JMS和EJB;<br>·...
Spring与iBATIS的集成 <br>iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
这是一个基于b/s模式的spring web工程代码生产工具....<br><br>涉及技术:spring mvc,spring ioc+aop,spring dao+jdbc/ibatis/hibernate,log4j,jsp/velocity/freemareker<br><br>环境:tomcat+jdk1.50+mysql5.0测试成功
Ibatis的主要配置文档,可以方便大家学习使用
今天学习,包含所有的jar包,所以有点大<br>spring2 struts2 ibatis mssql<br>共同学习啊,入门不错,我在xp下运行正常
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation"> <value>classpath:...
ibatise中关于iterate的用法的例子
<properties>元素 <setting>元素 <typeAlias>元素 <transactionManager>元素 <datasource>元素 <sqlMap>元素 SQL Map XML映射文件 Mapped Statements Statement的类型 SQL 语句 自动生成的主键 存储过程 ...
使用TransactionProxyFactoryBeans, Web应用是完全事务性的,就像使用EJB提供的那种<br>容器管理的事务一样. 所有的你的自定义业务逻辑可以通过简单的POJO来实现,并通过Spring的Dependency Injection容器进行管理...