iBatis iterate标签
2015-12-06 12:37
309 查看
转自:http://blog.csdn.net/bruce128/article/details/22098795
小结一下ibatis框架下,传入参数为数组类型或者是List类型的sql写法。标签里面都不需要表名 1.传入字符串数组,不需要标明parameterClasss,数组和List类型对象一样都可以用<iterate>标签进行遍历。
<select id="selectOrgIdByNameStr" resultClass="Integer"> SELECT id FROM org WHERE name IN <iterate close=")" open="(" conjunction=","> <![CDATA[ #[]# ]]> </iterate> </select>
* java调用代码(注意空指针问题) *
@Override public List<Integer> selectOrgIdByNameStr(String[] orgArchArr) { return baseDao.queryForList("org.selectOrgIdByNameStr", orgArchArr, Integer.class); }
2.传入List<Integer>,这个时候parameterClass传的是List接口的类路径,而不是List的泛型参数的类路径!
<select id="searchWaiters" parameterClass="java.util.List" resultClass="com.chat.domain.zone.WaiterCgExt"> SELECT w.id, pin as userName, org_id as orgId, w.name, erp, job_no as jobNo, level, max_csu, gid,cg.name chatGroupName, r.yn groupYn, cg.yn chatGroupYn FROM waiter w left join waiter_relation r on w.id = r.wid LEFT JOIN chat_group cg on r.gid = cg.id, org o WHERE o.id = w.org_id AND w.yn = 1 AND o.yn = 1 AND w.id IN <iterate open="(" close=")" conjunction=","> #wid[]# </iterate> </select>
* java调用代码如下,注意空指针问题 *
@Override public List<WaiterCgExt> searchWaiters(ModAccManVo vo) { List<Integer> widList = baseDao.queryForList("zone.waiter.searchWaitersId", vo, Integer.class); if(CollectionUtils.isEmpty(widList)) { return new ArrayList<WaiterCgExt>(); } return baseDao.queryForList("zone.waiter.searchWaiters", widList, WaiterCgExt.class); }
3.传入的List的元素是复杂的对象类型,类型类型里面包含id属性。同样,parameterClass传入的是List接口的类路径,而不是List的泛型参数的类路径。遍历的时候,用#list[].id#就行了,“.”后面跟上要枚举的属性名称
<select id="selectWaitersByOrgList" resultClass="com.chat.domain.zone.Waiter" parameterClass="java.util.List"> SELECT id, pin as userName FROM waiter WHERE org_id IN <iterate open="(" close=")" conjunction=","> #list[].id# </iterate> AND yn = 1 </select>
相关文章推荐
- 1099. Build A Binary Search Tree (30)
- 1098. Insertion or Heap Sort (25)
- org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Se
- UIDeviceOrientation
- 1097. Deduplication on a Linked List (25)
- [LeetCode]Implement Trie (Prefix Tree)
- 【思考一】Android程序员想做手机游戏开发
- 前后台切换会调用哪些方法
- 1096. Consecutive Factors (20)
- UEFI BIOS模式下Windows系统启动过程以及引导文件修复方法
- eclipse高效编程(一)
- 【Unix/Linux编程实践】 动手实现简单的more
- 软件开发概述
- Bete冲刺第二阶段
- G - sorry 没有北门
- 跨域问题:Access-Control-Allow-Origin
- 配置邮箱服务器
- A - 这是在网吧出的题!!
- 使用yum源安装CDH Hadoop集群
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境