マイバティスでリストオブジェクトをループ処理する方法は何ですか?
MyBatisでは、Listオブジェクトを繰り返し処理するためにforeachタグを使用することができます。
もしJavaのコードが次のようにあると仮定しましょう:
public class UserMapper {
public List<User> getUsersByIds(List<Integer> ids) {
// ...
}
}
Mapper XML ファイルでは、foreach タグを使用して ids パラメータを繰り返し処理することができます。
<select id="getUsersByIds" parameterType="java.util.List" resultType="User">
SELECT * FROM user
WHERE id IN
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
この例では、foreachタグのitem属性は現在反復されている要素を表し、index属性は現在の反復インデックスを表します。collection属性は反復するコレクションを指定し、open属性は反復が開始されるときの文字列を表し、separator属性は各要素の間の区切り文字を表し、close属性は反復が終了したときの文字列を表します。
上記の構成を使用すると、Listオブジェクトをパラメータとして渡すことができ、MyBatisは自動的にそのListオブジェクトをループし、ループ中の要素をSQLステートメントのパラメータとして渡します。