`

iterate标签--ibatis

 
阅读更多

项目用的是ibatis-2.3.4.726,不是mybatis。

 

一、我的应用

1.TCommission.xml (用iterate合成 in语句)

	<select id="queryMap"  parameterClass="com.hanpeng.base.phone.model.TCommission" resultClass="java.util.HashMap">
	<include refid="paginationStart"/>
      SELECT 
        T1.PRODUCT_NUM as productNum ,      
        T1.TYPE_NUM as typeNum ,      
        T1.FAST_COMMISSION as fastCommission ,      
        T1.NORM_COMMISSION as normCommission ,      
        T1.CREATE_DATE as createDate ,      
        T1.EMPLOYEE_ID as employeeId ,      
        T1.ALTER_DATE as alterDate ,      
        T1.OTHER_FAST_COMMISSION as otherFastCommission ,      
        T1.OTHER_NORM_COMMISSION as otherNormCommission ,      
        T1.MONEY as money ,      
        T1.FAST_PRICE as fastPrice ,      
        T1.NORM_PRICE as normPrice ,      
        T1.ALL_FAST_COMMISSION as allFastCommission ,      
        T1.ALL_NORM_COMMISSION as allNormCommission ,      
        T1.OTHER_FAST_PRICE as otherFastPrice ,      
        T1.OTHER_NORM_PRICE as otherNormPrice ,      
        T1.ALL_FAST_PRICE as allFastPrice ,      
        T1.ALL_NORM_PRICE as allNormPrice,
        T2.PRODUCT_NAME as productName,
        T3.TYPE_NAME as typeName,
        T2.Area_Code as areaCode
      FROM T_COMMISSION T1
      LEFT JOIN T_PRODUCT_TYPE T2 ON T1.PRODUCT_NUM=T2.PRODUCT_NUM
      LEFT JOIN T_COMMISSION_TYPE T3 ON T1.TYPE_NUM=T3.TYPE_NUM 
	<dynamic prepend="WHERE">
			<isNotEmpty prepend=" AND " property="productNum">
			T1.PRODUCT_NUM =  #productNum# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="typeNum">
			T1.TYPE_NUM =  #typeNum# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="fastCommission">
			T1.FAST_COMMISSION =  #fastCommission# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="normCommission">
			T1.NORM_COMMISSION =  #normCommission# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="createDate">
			T1.CREATE_DATE = #createDate# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="employeeId">
			T1.EMPLOYEE_ID =  #employeeId# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="alterDate">
			T1.ALTER_DATE = #alterDate# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="otherFastCommission">
			T1.OTHER_FAST_COMMISSION =  #otherFastCommission# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="otherNormCommission">
			T1.OTHER_NORM_COMMISSION =  #otherNormCommission# 	</isNotEmpty>
			<isNotEmpty prepend=" AND " property="money">
			T1.MONEY =  #money# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="fastPrice">
			T1.FAST_PRICE =  #fastPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="normPrice">
			T1.NORM_PRICE =  #normPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="allFastCommission">
			T1.ALL_FAST_COMMISSION =  #allFastCommission# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="allNormCommission">
			T1.ALL_NORM_COMMISSION =  #allNormCommission# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="otherFastPrice">
			T1.OTHER_FAST_PRICE =  #otherFastPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="otherNormPrice">
			T1.OTHER_NORM_PRICE =  #otherNormPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="allFastPrice">
			T1.ALL_FAST_PRICE =  #allFastPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="allNormPrice">
			T1.ALL_NORM_PRICE =  #allNormPrice# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="areaCode">
			T2.AREA_CODE =  #areaCode# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="provinceCode">
			T2.PROVINCE_CODE =  #provinceCode# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="operatorsCode">
			T2.OPERATORS_CODE =  #operatorsCode# 		</isNotEmpty>
			<isNotEmpty prepend=" AND " property="myMoneys">
				T1.MONEY IN
				<iterate property="myMoneys" open="(" close=")" conjunction=",">  
					#myMoneys[]#
				</iterate>
			</isNotEmpty>
		</dynamic>
	<include refid="paginationEnd"/>
	</select>

 2.TCommission.java (model实体,定义Double数组myMoneys)

public class TCommission extends BaseModel{
	// : PRODUCT_NUM 	
	private String productNum; 
	
	// : TYPE_NUM 	
	private String typeNum; 
	
	// : FAST_COMMISSION 	
	private java.lang.Double fastCommission; 
	
	// : NORM_COMMISSION 	

	// : FAST_PRICE 	
	private java.lang.Double fastPrice; 
	
	private String productName;//产品名称
	private String typeName;//策略名称
	private String areaCode;//区号
	private String provinceCode;//省号
	private String operatorsCode;//运营商
	private Double[] myMoneys;//面值数组

 

二、转载lwy内容

1.

<iterate property="states" open="(" close=")" conjunction="OR">   
    <isNotEqual compareValue="1" property="states[]">  
        STATE=#states[]#   
    </isNotEqual>   
    <isEqual compareValue="1" property="states[]">  
        STATE not in('0','-1')  
    </isEqual>  
</iterate>

 取循环中的值property与给定值compareValue 作比较 动态拼劲sql,
此例中states为String[],若states为List<?> 可用states[].xxx取值。
iterate标签还有个compareProperty属性,猜测为与某字段对比(未测试)。

 

2.

<isNotEmpty prepend=" AND " property="operators">  
    OPERATORS_CODE in  
    <iterate property="operators" open="(" close=")" conjunction=",">  
     #operators[]#  
    </iterate>      
</isNotEmpty>

 

 

 

 

分享到:
评论

相关推荐

    ibatis标签

    至于压缩包中的DE_iBATIS-SqlMaps-2_cn.pdf文件,这可能是一份关于iBATIS SqlMaps的中文文档,可能包含了对`&lt;iterate&gt;`标签的详细解释,包括其语法、使用场景、示例以及注意事项等内容。这份文档对于学习和理解...

    ibatis中iterate的例子

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

    iBATIS动态标签

    iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...

    ibatis list

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

    ibatis批量存储

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

    ibatis批处理

    iBatis的配置文件支持`&lt;iterate&gt;`标签,该标签用于在XML映射文件中进行循环处理。 **2.1 情况一:多个输入参数循环次数不对称** 在这种情况下,如果某些参数只有一份,而其他参数有多份,可以通过创建一个新的...

    ibatis常用sql语句

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

    Ibatis复杂查询语句.doc

    9. **迭代器标签 `&lt;iterate&gt;`**: - `&lt;iterate&gt;`用于处理数组或集合类型的参数,如`dismissStatusList`,它可以生成逗号分隔的条件,如`m.DISMISS_STATUS in ( ... )`。 总结起来,这个Ibatis查询语句充分展示了...

    iBatis的动态SQL语句

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

    常用ibatis配置

    在文档中,展示了如何使用&lt;iterate&gt;标签来生成IN子句,以便于将一个集合中的值动态地插入到SQL语句中。 7. 截止日期:在业务逻辑中,常常需要查询截止到某个特定日期或时间点的数据。iBatis配置允许使用动态SQL标签...

    Ibatis常用sql语句

    根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。

    struts+spring+ibatis(SSI)的最简分页及标签

    总结起来,"struts+spring+ibatis(SSI)的最简分页及标签"是一个关于如何在Java Web开发中结合Struts的MVC架构、Spring的依赖管理和iBatis的数据访问来实现分页功能以及创建自定义标签的实践。这个过程涉及到Struts的...

    iBATIS实战

    8.2.5 iterate标签 138 8.3 一个简单而完整的示例 139 8.3.1 定义如何检索和显示数据 140 8.3.2 确定将涉及哪些数据库结构 140 8.3.3 以静态格式编写SQL 141 8.3.4 将动态SQL标签应用到静态SQL上 141 8.4 高级动态...

    ibatis批量删除的方法.docx

    第二种方法是利用iBatis提供的`iterate`标签,它可以遍历整个集合并为列表中的每个元素生成SQL的一部分。iBatis官方文档中给出了一个示例: ```xml DELETE FROM info &lt;iterate prepend="AND" property=...

    ibatis_3.0_Dynamic_Sql_设计解析(并与2.x的差异)

    在ibatis 2.x中,Dynamic Sql的配置较为繁琐,需要使用特定的标签如`&lt;isNotNull&gt;`、`&lt;iterate&gt;`等来构建动态部分。例如,为了根据参数是否为空来决定是否包含某个条件,需要使用`&lt;isNotNull&gt;`标签,而对于集合参数的...

    ibatis资料

    `iterate`标签是Ibatis动态SQL中的一个强大工具,它用于迭代一个集合并生成相应的SQL片段。例如,假设我们需要根据一组ID来查询用户,可以这样写: ```xml SELECT * FROM user WHERE id IN (" separator="," ...

    iBatis操作

    这些XML配置文件定义了具体的SQL语句,其中`iterate`标签用于处理列表中的每一项。 #### 四、DAO类实现 下面通过一个具体的例子来看如何在Java DAO层实现批量插入操作。 ```java import org.springframework.orm....

    ibatis学习文档

    在这种情况下,`&lt;iterate&gt;`标签用于构建SQL的`IN`子句。`open`属性定义了`IN`子句的开始括号,`close`属性定义了结束括号,而`conjunction`属性定义了元素间的分隔符,通常是逗号。`#[]#`中的`[]`是占位符,Ibatis...

    ibatis dynamic 用法

    本文将详细介绍 ibatis 中 Dynamic SQL 的使用方法,特别关注 `&lt;dynamic&gt;` 标签及其相关的子标签。 #### 二、Dynamic SQL 标签概述 Dynamic SQL 在 ibatis 中主要通过以下几种标签实现: 1. **`&lt;dynamic&gt;`**:用于...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    为了避免这种情况,我们可以使用iBATIS的`iterate`标签来遍历列表: ```xml select * from sys_road_line_info where road_line_no in &lt;iterate open="(" close=")" conjunction=","&gt; #value[]# &lt;/iterate&gt; `...

Global site tag (gtag.js) - Google Analytics