Solo  当前访客:0 开始使用

mybaits批量新增、修改、删除,及动态传参


一、批量新增
传入list参数:

<insert id="insertSynDate" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> insert into `cau_ent_store` ( `sin_id`, `goods_id` ) values <foreach collection="list" item="item" index="index" separator=","> ( #{item.sinId}, #{item.goodsId} ) </foreach> </insert>

二、批量修改
传入list参数,where条件sin_id过滤值,当case的sin_id值等于when后item.sinId值的时候,该列就会set入then后的item.storeId值

<update id="updataSynData" parameterType="java.util.List"> update cau_ent_store set store_id = case sin_id <foreach collection="list" item="item"> when #{item.sinId} then #{item.storeId} </foreach> end, goods_id=case sin_id <foreach collection="list" item="item"> when #{item.sinId} then #{item.goodsId} </foreach> end where sin_id in <foreach collection="list" item="item" separator="," open="(" close=")"> #{item.sinId} </foreach> </update>

三、批量删除

<delete id="deleteMoreEmp" parameterType="int[]"> <!-- delete from emp where empno in(7789,7790) --> <!-- forEach : 用来循环 collection : 用来指定循环的数据的类型 可以填的值有:array,list,map item : 循环中为每个循环的数据指定一个别名 index : 循环中循环的下标 open : 开始 close : 结束 separator : 数组中元素之间的分隔符 --> delete from emp where empno in <foreach collection="array" item="arr" index="no" open="(" separator="," close=")"> #{arr} </foreach> </delete>

四、动态传参:传入map参数(字段名,表名动态传入)
1、新增

<insert id="insert" parameterType="java.util.Map" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> <selectKey resultType="int" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() as id </selectKey> <foreach collection="tableName" item="item" index="index" open="" separator="," close=""> insert into ${item} </foreach> <foreach collection="key" item="item" index="index" open="(" separator="," close=")"> ${item} </foreach> values <foreach collection="value" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </insert>

2、查询

<select id="queryIsExsit" parameterType="java.util.Map" resultType="Integer"> <foreach collection="tableName" item="item" index="index" open="" separator="," close=" "> select t.id from ${item} t </foreach> <where> <foreach item="item" index="count" collection="flag" open=" " separator="and" close=""> ${item}= <foreach item="item" index="index" collection="flagValue" open=" " separator=" " close=""> <if test="index==count"> #{item} </if> </foreach> </foreach> </where> </select>

3、修改

<update id="updateDate" parameterType="java.util.Map" > <foreach collection="tableName" item="item" index="index" open="" separator="," close=" "> update ${item} t SET </foreach> <foreach item="key" collection="key" separator="," index="count" > ${key}= <foreach item="item" index="index" collection="value" open=" " separator=" " close=""> <if test="index==count"> #{item} </if> </foreach> </foreach> <where> <foreach collection="tableId" item="item" index="index" open="" separator="," close=" "> t.id=#{item} </foreach> </where> </update>

相关阅读: