//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>
Mybatis 传入List参数
最新推荐文章于 2021-12-04 14:49:48 发布
本文详细介绍了如何使用Java与SQL结合,通过传入数组或字符串参数,实现数据库中多条记录的批量更新操作。具体展示了利用MyBatis框架的动态SQL功能和ArrayList进行数组参数传递的方法,以及如何将字符串转换为数组并以此更新数据库记录。同时,通过代码实例阐述了获取特定条件下的多条记录并进行后续处理的过程。
2905

被折叠的 条评论
为什么被折叠?



