Mybatis 传入List参数

本文详细介绍了如何使用Java与SQL结合,通过传入数组或字符串参数,实现数据库中多条记录的批量更新操作。具体展示了利用MyBatis框架的动态SQL功能和ArrayList进行数组参数传递的方法,以及如何将字符串转换为数组并以此更新数据库记录。同时,通过代码实例阐述了获取特定条件下的多条记录并进行后续处理的过程。

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


//dao 代码 如果传入的参数是数组,也一样
void insertDefaultMsg(@Param("idsList") ArrayList<String> idsList);
//xml文件
<update id="insertDefaultMsg" parameterType="java.util.List">
UPDATE
plf_pur_delivery_plan p
SET
p.promise_delivery_amount = p.quantity_req,
p.promise_delivery_time = p.quantity_time
WHERE p.id IN
<foreach item="item" collection="idsList" separator="," open="(" close=")" index="">
#{item, jdbcType=VARCHAR}
</foreach>
</update>

//如果传入字符串
//service 代码
Map<String, String> map = bean.getDatas().get(0);
String ids = map.get("ids");
String[] idsArr = ids.split(",");
String inId = "";
for (int i = 0; i < idsArr.length; i++) {
if (i != idsArr.length - 1) {
inId += "'" + idsArr[i] + "',";
} else {
inId += "'" + idsArr[i] + "'";
}
}
List<Map<String, String>> list = purDeliveryPlanDao
.getPlanListManual(inId);

//dao层代码
List<Map<String, String>> getPlanListManual(@Param("inId") String inId);
//xml 文件
<select id="getPlanListManual" parameterType="java.lang.String" resultType="java.util.Map">
SELECT
p.supplier_code,
p.pur_order_no,
IF(
p.update_times > 0,
'修改订单',
'新订单'
) AS order_type
FROM
plf_pur_delivery_plan p
WHERE p.is_notice = '0'
AND p.is_delete = '1'
AND p.id in(<![CDATA[${inId}]]>)
GROUP BY p.supplier_code,
p.pur_order_no
ORDER BY p.supplier_code
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值