一、批量新增
int batchSaveBook(@Param("bookList")List<Book> bookList);
<insert id="batchSaveBook" parameterType="java.util.List">
insert into book (`name`, user_id, price) values
<foreach collection="bookList" item="book" separator=",">
( #{book.name,jdbcType=VARCHAR}, #{book.user_id,jdbcType=INTEGER}, #{book.price,jdbcType=DOUBLE})
</foreach>
</insert>
二、批量修改(批量修改注意在Mysql连接后面添加&allowMultiQueries=true不然会报错)
int batchUpdateBook(@Param("list") List<Book> bookList);
<update id="batchUpdateBook" parameterType="java.util.List">
<foreach collection="list" item="book" open="" close="" separator=";">
update book <set>
<if test="book.name!=null"> `name`=#{book.name,jdbcType=VARCHAR}, </if>
<if test="book.user_id!=null"> user_id = #{book.user_id,jdbcType=INTEGER}, </if>
<if test="book.price!=null"> price = #{book.price,jdbcType=DOUBLE} </if>
</set>
where id=#{book.id,jdbcType=INTEGER}
</foreach>
</update>
三、批量删除
int batchDelete(@Param("list")List<Integer> ids);
<delete id="batchDelete" parameterType="java.util.List">
delete from book where id IN
<foreach collection="list" item="ids" open="(" separator="," close=")" >
#{ids}
</foreach>
</delete>
这篇博客介绍了如何使用Java的MyBatis框架进行批量数据库操作,包括批量新增记录、批量修改记录以及批量删除记录。批量新增通过<foreach>标签实现,批量修改和删除同样利用<foreach>处理多个条件,注意批量修改时需要设置允许多条SQL查询的配置。这些方法提高了数据库操作的效率。
606

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



