MyBatisのforeach文の使い方はどうですか。
MyBatisのforeachステートメントは、動的SQLでコレクションや配列を反復処理するために使用されます。SQLステートメントで同じSQLフラグメントを複数回実行し、それぞれの回でコレクションや配列の要素を使用することができます。
MyBatisのforeachステートメントを使用した例を以下に示します。
- XMLのマッピングファイルでforeachステートメントを定義する。
<select id="getUsersByIds" resultType="User">
SELECT * FROM users WHERE id IN
<foreach item="item" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</select>
上記の例では、SQLクエリー内でforeachステートメントを使用して、idsというコレクションを繰り返し処理しました。
- Javaコード内でコレクションを設定する:
List<Integer> ids = Arrays.asList(1, 2, 3);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("ids", ids);
List<User> users = sqlSession.selectList("getUsersByIds", paramMap);
上記の例では、idsという名前のリストを作成し、それをMyBatisのselectListメソッドにパラメータとして渡しました。
MyBatisでforeach文を使用する基本的な方法です。要件に応じて異なる設定を選択できます。たとえば、コレクション内の要素の名前を指定したり、ループの先頭や末尾の文字列を設定したり、ループ要素の区切り文字を指定したりすることができます。