MyBatis中的list用于在映射文件中執行批量操作。它可以將一個參數列表中的多個對象一次性插入、更新或刪除。以下是MyBatis中list的用法示例:
映射文件示例:
<insert id="insertUsers" parameterType="java.util.List">
INSERT INTO users (id, name, age) VALUES
<foreach collection="list" item="user" separator=",">
(#{user.id}, #{user.name}, #{user.age})
</foreach>
</insert>
Java代碼示例:
List<User> userList = new ArrayList<>();
userList.add(new User(1, "Alice", 20));
userList.add(new User(2, "Bob", 25));
userList.add(new User(3, "Charlie", 30));
sqlSession.insert("insertUsers", userList);
映射文件示例:
<update id="updateUsers" parameterType="java.util.List">
<foreach collection="list" item="user" separator=";">
UPDATE users SET name = #{user.name}, age = #{user.age} WHERE id = #{user.id}
</foreach>
</update>
Java代碼示例:
List<User> userList = new ArrayList<>();
userList.add(new User(1, "Alice", 21));
userList.add(new User(2, "Bob", 26));
userList.add(new User(3, "Charlie", 31));
sqlSession.update("updateUsers", userList);
映射文件示例:
<delete id="deleteUsers" parameterType="java.util.List">
DELETE FROM users WHERE id IN
<foreach collection="list" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
Java代碼示例:
List<Integer> userIds = new ArrayList<>();
userIds.add(1);
userIds.add(2);
userIds.add(3);
sqlSession.delete("deleteUsers", userIds);
這些示例展示了在MyBatis中如何使用list進行批量操作。注意在映射文件中使用foreach標簽時,collection屬性指定了要遍歷的參數列表,item屬性指定了在每次循環中的對象名稱,separator屬性指定了每個對象之間的分隔符。