mybatis批量操作
List类型
Mapper.java
public int updateAccount(List<OrderJob> orderJobs);
Mapper.xml
<update id="updateAccount" parameterType="com.hongyums.quartz.domain.OrderJob">
update biz_mn_account
set
<trim prefix="ZJE=case " suffix="end,">
<foreach collection="list" item="item" >
when dlmc=#{item.dlmc} then #{item.zje}
</foreach>
</trim>
<trim prefix="YQRZJE=case " suffix="end,">
<foreach collection="list" item="item" >
when dlmc=#{item.dlmc} then #{item.yqrzje}
</foreach>
</trim>
<trim prefix="YXFJE=case " suffix="end,">
<foreach collection="list" item="item" >
when dlmc=#{item.dlmc} then #{item.yxfje}
</foreach>
</trim>
GXSJ=SYSDATE()
where DLMC in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.dlmc}
</foreach>
</update>
如果是Array的话,collerciton="array"
collerciton=list 和array 是mybaits默认的参数名称,如果你入参中设置了 @Parame
public int updateAccount(@Parame("Param1") List<OrderJob> orderJobs);
那么 collerciton=“Param1”
Map类型
Mapper.java
@Data
public class BizMnCreateTableBO {
// 表名称
private String tableName;
// 字段
private Map<String,String> parmes;
}
}
Mapper.xml
<update id="createNewTable" parameterType="com.hongyums.system.domain.vo.BizMnCreateTableBO">
CREATE TABLE ${tableName} (
id bigint(20) NOT NULL AUTO_INCREMENT comment '合同模板编号',
dlmc varchar(20) comment '登录名称',
<foreach index="key" item="value" collection="parmes" separator=",">
${key} varchar(50) DEFAULT NULL comment #{value}
</foreach>
, PRIMARY KEY (id))
</update>
我尝试 将${key}改为#{key} 但是发现报错,暂不知原因。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)