关于MyBatis批量添加、修改和删除的完整攻略,我会从以下几点进行详细讲解:
- 批量添加 INSERT INTO
- 批量修改 UPDATE
- 批量删除 DELETE
针对每个点,我会详细介绍其语法,以及两个示例。
1.批量添加 INSERT INTO
语法:
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO tableName(column1, column2, ...) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.property1}, #{item.property2}, ...)
</foreach>
</insert>
其中,parameterType
指定的是传入的参数的类型,这里设置为java.util.List
,表示传入一个List对象;foreach
用来遍历List,并以括号中指定的方式进行操作。
示例一:批量添加User
假设我们有一个User实体,包含userId、userName、userAge等属性,我们需要批量添加多个User,可以使用以下代码:
<insert id="batchInsertUser" parameterType="java.util.List">
INSERT INTO USER (user_id, user_name, user_age) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.userName}, #{item.userAge})
</foreach>
</insert>
示例二:批量添加Book
假设我们有一个Book实体,包含bookId、bookName、bookPrice等属性,我们需要批量添加多个Book,可以使用以下代码:
<insert id="batchInsertBook" parameterType="java.util.List">
INSERT INTO BOOK (book_id, book_name, book_price) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.bookId}, #{item.bookName}, #{item.bookPrice})
</foreach>
</insert>
2.批量修改 UPDATE
语法:
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
UPDATE tableName SET column1 = #{item.property1}, column2 = #{item.property2} WHERE condition = #{item.property3};
</foreach>
</update>
其中,list
指代传入的List集合,item
表示当前操作的元素,index
表示当前元素在List中的索引;open
和close
则表示循环开始和结束时的字符串;separator
表示每个循环周期之间的分隔符。
示例一:批量修改User的userName
假设我们需要批量修改多个User的userName,可以使用以下代码:
<update id="batchUpdateUserName" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
UPDATE USER SET user_name = #{item.userName} WHERE user_id = #{item.userId};
</foreach>
</update>
示例二:批量修改Book的bookPrice
假设我们需要批量修改多个Book的bookPrice,可以使用以下代码:
<update id="batchUpdateBookPrice" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
UPDATE BOOK SET book_price = #{item.bookPrice} WHERE book_id = #{item.bookId};
</foreach>
</update>
3.批量删除 DELETE
语法:
<delete id="batchDelete" parameterType="java.util.List">
DELETE FROM tableName WHERE condition in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
其中,condition
表示删除的条件,可以是id
等唯一标识符,list
为传入的List集合,item
表示当前被操作的元素,separator
为元素之间的分隔符,open
和close
则表示在生成SQL语句时的左右括号。
示例一:批量删除User
假设我们需要批量删除多个User,可以使用以下代码:
<delete id="batchDeleteUser" parameterType="java.util.List">
DELETE FROM USER WHERE user_id in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
示例二:批量删除Book
假设我们需要批量删除多个Book,可以使用以下代码:
<delete id="batchDeleteBook" parameterType="java.util.List">
DELETE FROM BOOK WHERE book_id in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
以上就是关于MyBatis批量添加、修改和删除的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis批量添加、修改和删除 - Python技术站