myBatis的xml映射文件中传入list集合与数组做条件

本文详细介绍了在MyBatis中如何使用XML映射文件处理List集合和数组作为参数进行数据库查询。通过具体的SQL映射示例和Java代码实现,展示了如何在查询语句中动态构建条件,特别关注于使用foreach标签处理集合和数组元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                  mybatis的xml映射文件中传入list集合与数组做条件

1.传list集合参数

1.1sql映射:

<select id="queryDeptListByBankLevelAndBankName" parameterType="java.util.HashMap"
			resultMap="queryDeptListByBankLevelAndBankNameResult">
		select DEPTSEQ ,
		DEPTNAME,DEPTID
		from DEPT
		 WHERE 1=1
		<if test="deptIdList != null and deptIdList.size > 0 ">
		 and DEPTID not in
		 <foreach collection="deptIdList" item ="deptId" index="i" open="(" close=")" separator=",">
		           #{deptId}
		 </foreach>
		 </if>
		 ORDER BY DEPTID
	</select>

1.2 java类

将list集合封装到Map中

ArrayList deptIdList = new ArrayList();
        	String [] deptIds = {"006001", "006002", "006003", "006004", "006005"};
        	Collections.addAll(deptIdList, deptIds);
        	Map map = new HashMap();
        	map.put("deptIdList",deptIdList);
       ArrayList<Map> subList = this.sqlMap.queryForList("mcmmcif.queryDeptListByBankLevelAndBankName", map);

2.传数组参数

	<select id="queryDeptListByBankLevelAndBankName" parameterType="java.util.HashMap"
			resultMap="queryDeptListByBankLevelAndBankNameResult">
		select DEPTSEQ ,
		DEPTNAME,DEPTID
		from DEPT
		 WHERE 1=1
		<if test="deptIdList != null and deptIdList.length > 0 ">
		 and DEPTID  in
		 <foreach collection="deptIdList" item ="deptId" index="i" open="(" close=")" separator=",">
		           #{deptId}
		 </foreach>
		 </if>
		 ORDER BY DEPTID
	</select>

2.2 java类

将list集合封装到Map中

String [] deptIds = {"006007","006010","006011","006024","006025","006034","006035"};
        	Map map = new HashMap();
        	map.put("deptIds",deptIds);
        	ArrayList<Map> subList = this.sqlMap.queryForList("mcmmcif.queryDeptListByBankLevelAndBankName", map);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值