`

ibatis中的iterate遍历属性值

阅读更多

收集了一下“黑咖啡”的介绍: http://www.blogjava.net/kyleYang/archive/2010/02/02/311688.html

感谢能与大家分享

Iterate:这个属性遍历整个集合,并为List集合中的元素重复素体的内容。

Iterate 的属性: 
      prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选) 
      property  - 类型为 java.util.List 的用于遍历的元素(必选) 
      open  -  整个遍历内容体开始的字符串,用于定义括号(可选) 
      close  -整个遍历内容体结束的字符串,用于定义括号(可选) 
      conjunction -  每次遍历内容之间的字符串,用于定义 AND 或 OR(可选) 
      遍历类型为 java.util.List的元素。

例子:
<iterate prepend=”AND” property=”userNameList”
open=”(” close=”)” conjunction=”OR”>
username=#userNameList[]#
</iterate>

ibatis中如何配置in语句,需要迭代,不能直接用string的写法
<select id="sql_test" parameterclass="myPramBean" resultclass="myResult">
select *from tablewhere name in
<iterate property="ids" conjunction="," close=")" open="(" />
#value[]#
</iterate>
and code=#code#
</select>
myPramBean
{
private String code;
private List ids;
...
}

eg:
<delete id="member.batchDelete" parameterClass="java.util.List">
      DELETE FROM member where id IN
      <iterate conjunction="," open="(" close=")" >
          #value[]#
      </iterate>
</delete>

注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将
对象标记为List,以防解析器简单地将List输出成String。

 

 

这个例子还行,但是我的是一个map。这个#userNameList[]# 

似乎不能那样解决!

如下:

 <!-- 分页 conditions是一个list-->
   <sql id="queryDaily_clarkByPage">
         <isNotEmpty property="conditions">
           <iterate  property="conditions" open="(" close=")"  conjunction="AND">
               <![CDATA[
                    tdate=#conditions[]:INT#
                    AND  client_group=#contitions[]:VARCHAR#
                    AND  client_no=#conditions[]:VARCHAR#
                   
               ]]>
           </iterate>
         </isNotEmpty>   
   </sql>

 

如果是多个条件?比如#contitions[].tdate#,#contitions[].client_group#? 

分享到:
评论

相关推荐

    ibatis中iterate的例子

    在iBatis中,`&lt;iterate&gt;`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`&lt;iterate&gt;`标签的用法及其示例。 `&lt;iterate&gt;`标签的主要...

    ibatis标签

    标题中的“ibatis&lt;iterate&gt;标签”指的是在iBATIS框架中用于动态SQL的一个关键功能。iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`&lt;iterate&gt;`标签是iBATIS提供的一个...

    ibatis list

    `&lt;iterate&gt;`标签是iBatis中用于循环遍历集合的一种机制,它允许你在SQL语句中动态生成参数列表,这对于批量操作(如批量插入、更新或删除)尤为重要。该标签支持多种属性,包括`property`、`conjunction`、`open`、`...

    iBATIS动态标签

    通过这些标签,开发者可以在iBATIS的SQL映射文件中实现灵活的动态SQL,如示例所示,可以根据`Account`对象的`username`属性是否存在和其值来决定`WHERE`子句的内容,从而实现更高效和可维护的数据库查询。

    ibatis批量处理

    iBatis可以非常简单地将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 iBatis提供了批处理功能,可以在一次数据库连接中执行多个SQL语句,这极大地提高了处理大量数据时的性能...

    ibatis批量存储

    本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中的动态查询可以根据参数的值动态地生成 SQL 语句,实现了高效的查询功能。例如,在上面的示例代码中,我们使用 `&lt;select&gt;` 元素来定义查询语句,使用 `&lt;dynamic&gt;` 元素来定义动态 SQL 语句。 在动态 SQL ...

    ibatis应对批量update

    通过上述步骤,我们可以在ibatis中实现高效的批量更新操作,极大地提升系统处理大规模数据的能力。这种方法不仅适用于Java环境下的开发,也适用于其他支持ibatis的编程语言。总之,ibatis提供的批量更新功能是处理...

    ibatis批处理

    在iBatis配置文件中,使用`&lt;iterate&gt;`标签遍历`appDevIds`数组,形成IN条件语句。 **2.2 情况二:多个输入参数循环次数是对称的** 当输入参数的循环次数与操作的次数相匹配时,可以创建一个HashMap,将参数名作为...

    ibatis官方中文文档

    2. **设置参数**:在Java代码中创建参数对象,根据存储过程的需求设置参数值。 3. **调用存储过程**:通过SqlSession对象的`call`方法执行存储过程,传入存储过程的ID和参数对象。 4. **处理结果**:存储过程的...

    ibatis拼接字符串

    循环遍历 `ids` 数组,将每个 ID 添加到 SQL 语句中,并正确处理分隔符(逗号)和括号的添加。 #### 3. 处理其他过滤条件 ```java if (type != null && !type.trim().equals("") && !type.equals("1")) { sb....

    ibatis常用sql语句

    iBATIS通过`&lt;iterate&gt;`标签支持数组的遍历,将数组中的每个元素作为独立的值插入到SQL语句中。例如,`&lt;iterate property="actionIds" open="(" close=")" conjunction=","&gt;`这段代码会将`actionIds`数组中的每个元素...

    iBatis的动态SQL语句

    上述示例中,`userNameList`是一个List类型的集合,`&lt;iterate&gt;`标签会遍历该集合中的所有元素,并为每个元素生成如下的SQL片段:`AND (username=#userNameList[0] OR username=#userNameList[1] OR ...)`。...

    ibatis2.0中文API

    在iBATIS 2.0中文API中,我们可以深入理解这个框架的核心功能和用法,包括一对多、多对一的关系映射、属性设置以及解决方案的详细解析。 首先,一对多和多对一的关系映射是ORM(对象关系映射)中的关键概念。在...

    ibatis3.0中in的用法

    ### ibatis3.0中`in`的用法详解 #### 一、引言 在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用...

    ibatis 中文手册

    3. **参数映射**:通过 `@Param` 注解或 XML 配置,Ibatis 能够自动将 Java 对象的属性值映射为 SQL 查询的参数。 4. **缓存机制**:Ibatis 内置了缓存功能,分为一级缓存(SqlSession 级别)和二级缓存(Mapper ...

    ibatis乱码解决方法(ibatis独立)

    - 在Ibatis的配置文件`SqlMapConfig.xml`中,可以设置`&lt;settings&gt;`标签内的`defaultExecutorType`属性为`BATCH`或`SIMPLE`,以确保每次执行的SQL都是独立的,避免因缓存导致的编码问题。 - 同时,确保你的项目编码...

    ibatis 用HashMap解决resultClass映射

    在 ibatis 中,可以使用 `&lt;select&gt;` 元素来定义 SQL 查询,并通过 `resultClass` 属性指定结果集的类型。为了使查询结果能够适应变化的列名和列数,我们需要设置 `remapResults` 属性为 `true`。 ```xml &lt;!-- ...

    ibatis总结 ibatis ibatis ibatis ibatis

    - `applicationContext.xml`是Spring的主配置文件,它定义了Spring容器中的bean,包括对Struts、Ibatis等其他框架的配置,实现各组件间的依赖注入。 - `codelist.xml`则可能包含了全局共享的bean,如`...

Global site tag (gtag.js) - Google Analytics