项目用的是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>
分享到:
相关推荐
至于压缩包中的DE_iBATIS-SqlMaps-2_cn.pdf文件,这可能是一份关于iBATIS SqlMaps的中文文档,可能包含了对`<iterate>`标签的详细解释,包括其语法、使用场景、示例以及注意事项等内容。这份文档对于学习和理解...
在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...
`<iterate>`标签是iBatis中用于循环遍历集合的一种机制,它允许你在SQL语句中动态生成参数列表,这对于批量操作(如批量插入、更新或删除)尤为重要。该标签支持多种属性,包括`property`、`conjunction`、`open`、`...
本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...
iBatis的配置文件支持`<iterate>`标签,该标签用于在XML映射文件中进行循环处理。 **2.1 情况一:多个输入参数循环次数不对称** 在这种情况下,如果某些参数只有一份,而其他参数有多份,可以通过创建一个新的...
iBATIS通过`<iterate>`标签支持数组的遍历,将数组中的每个元素作为独立的值插入到SQL语句中。例如,`<iterate property="actionIds" open="(" close=")" conjunction=",">`这段代码会将`actionIds`数组中的每个元素...
9. **迭代器标签 `<iterate>`**: - `<iterate>`用于处理数组或集合类型的参数,如`dismissStatusList`,它可以生成逗号分隔的条件,如`m.DISMISS_STATUS in ( ... )`。 总结起来,这个Ibatis查询语句充分展示了...
上述示例中,`userNameList`是一个List类型的集合,`<iterate>`标签会遍历该集合中的所有元素,并为每个元素生成如下的SQL片段:`AND (username=#userNameList[0] OR username=#userNameList[1] OR ...)`。...
在文档中,展示了如何使用<iterate>标签来生成IN子句,以便于将一个集合中的值动态地插入到SQL语句中。 7. 截止日期:在业务逻辑中,常常需要查询截止到某个特定日期或时间点的数据。iBatis配置允许使用动态SQL标签...
根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。
总结起来,"struts+spring+ibatis(SSI)的最简分页及标签"是一个关于如何在Java Web开发中结合Struts的MVC架构、Spring的依赖管理和iBatis的数据访问来实现分页功能以及创建自定义标签的实践。这个过程涉及到Struts的...
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提供的`iterate`标签,它可以遍历整个集合并为列表中的每个元素生成SQL的一部分。iBatis官方文档中给出了一个示例: ```xml DELETE FROM info <iterate prepend="AND" property=...
在ibatis 2.x中,Dynamic Sql的配置较为繁琐,需要使用特定的标签如`<isNotNull>`、`<iterate>`等来构建动态部分。例如,为了根据参数是否为空来决定是否包含某个条件,需要使用`<isNotNull>`标签,而对于集合参数的...
`iterate`标签是Ibatis动态SQL中的一个强大工具,它用于迭代一个集合并生成相应的SQL片段。例如,假设我们需要根据一组ID来查询用户,可以这样写: ```xml SELECT * FROM user WHERE id IN (" separator="," ...
这些XML配置文件定义了具体的SQL语句,其中`iterate`标签用于处理列表中的每一项。 #### 四、DAO类实现 下面通过一个具体的例子来看如何在Java DAO层实现批量插入操作。 ```java import org.springframework.orm....
在这种情况下,`<iterate>`标签用于构建SQL的`IN`子句。`open`属性定义了`IN`子句的开始括号,`close`属性定义了结束括号,而`conjunction`属性定义了元素间的分隔符,通常是逗号。`#[]#`中的`[]`是占位符,Ibatis...
本文将详细介绍 ibatis 中 Dynamic SQL 的使用方法,特别关注 `<dynamic>` 标签及其相关的子标签。 #### 二、Dynamic SQL 标签概述 Dynamic SQL 在 ibatis 中主要通过以下几种标签实现: 1. **`<dynamic>`**:用于...
为了避免这种情况,我们可以使用iBATIS的`iterate`标签来遍历列表: ```xml select * from sys_road_line_info where road_line_no in <iterate open="(" close=")" conjunction=","> #value[]# </iterate> `...