小结一下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>
以上代码在本机都正常运行。
相关推荐
ibatis 处理数组,修改配置文件和easyui tree 部分代码
ibatis教程 输入参数详解 ibatis快速入门
ibatis中输入输出各种类型的参数分析及#与$区别
ibatis批量
ibatis小结主要描述ibatis框架的一些基本使用。以及相关的配置,此demo可以运行
ibatis学习 ibatis总结 ibatis ibatis ibatis
IBATIS开发使用小结,手把手教会您IBATIS的使用
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
ibatis 读取oracle clob类型
主要介绍了java~springboot~ibatis数组in查询的实现方法,需要的朋友可以参考下
ibatis与存储过程(带输出参数的应用)
ibatis的多参数查询.doc
ibatis入门与ibatis迭代的用法
ibatis demo,ibatis例子,ibatis示例
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis 组件 , 用于访问数据库 ibatis 基于O-R mapping 映射
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
ibatis
Ibatis3,手册,Ibatis3手册,Ibatis3使用手册,Ibatis3参考手册
1.5 小结 24 第2章 iBATIS是什么 26 2.1 映射SQL语句 27 2.2 iBATIS如何工作 29 2.2.1 iBATIS之于小型、简单系统 30 2.2.2 iBATIS之于大型、企业级系统 31 2.3 为何使用iBATIS 31 2.3.1 简单性 32 2.3.2 生产效率 ...