MyBatisでリストを一括削除する方法は何ですか?
MyBatisは、リストを一括削除するためのメソッドを提供しており、Mapper XMLファイルまたはアノテーションを使用して実行できます。
- Mapper XMLファイルを使用します:
Mapper XMLファイルに削除ステートメントを記述し、foreachタグを使用してリスト内の各要素を繰り返し削除します。例えば:
<delete id="deleteBatch" parameterType="java.util.List">
DELETE FROM table_name
WHERE id IN
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
Javaコードで、Mapperインターフェースの対応するメソッドを呼び出して、一括削除を実装します。例えば:
List<Integer> idList = new ArrayList<>();
idList.add(1);
idList.add(2);
idList.add(3);
mapper.deleteBatch(idList);
- マッパーインターフェース内で、@Deleteアノテーションを使用し、foreach属性を使用してリスト内の各要素を削除します。例えば:
@Delete("DELETE FROM table_name WHERE id IN "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>")
void deleteBatch(List<Integer> idList);
Javaのコードでは、Mapperインターフェースの対応するメソッドを呼び出して、一括削除を実装します。例えば:
List<Integer> idList = new ArrayList<>();
idList.add(1);
idList.add(2);
idList.add(3);
mapper.deleteBatch(idList);
上記は、MyBatisでリストをバッチで削除するための2つの一般的な方法です。具体的な要件や使用習慣に応じて、そのうちの一つを選択して実装することができます。