Mybatis动态sql批量增删改
个人常用的一些批量增删改查的动态sql
表名为user 单表的,能想到的可能都加上了.希望对大家有所帮助
id,自增 integer
name varchar
age integer
sex integer
update_user_id integer
update_time datetime
create_user_id,integer
create_time datetime
del integer
id为自增
<insert id="saveUsers" parameterType="list" useGeneratedKeys="true" keyProperty="id">
insert into user
(name,age,sex,create_user_id,create_time,del)
VALUE
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},#{item.age},#{item.sex},#{item.userId},now(),0)
</foreach>
</insert>
<update id="updateUsers" parameterType="list">
update user
<trim prefix="set" suffixOverrides=",">
<trim prefix="name = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.name}
</foreach>
</trim>
<trim prefix="age = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.age}
</foreach>
</trim>
<trim prefix="sex = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.sex}
</foreach>
</trim>
<trim prefix="update_user_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.updateUserId}
</foreach>
</trim>
update_time=NOW()
</trim>
where
<foreach collection="list" separator="or" item="item" index="index">
id=#{item.id}
</foreach>
</update>
<delete id="deleteUsers" parameterType="list">
delete from user where
<foreach collection="list" separator="or" index="index" item="item">
id=#{item.id}
</foreach>
</delete>