MyBatisでList/配列を渡す方法【パラメータ設定】

Mybatisでコレクションを渡す方法は主に2つあります:Listを使用するか、Mapを使用するかです。

  1. Listを使用してコレクションを渡す:Mapperインターフェースでメソッドを定義する際に、直接Listをパラメータとして渡すことができます。MybatisはList内の要素を自動的にSQLステートメントにパラメータとして渡します。例:
public List<User> selectUserByIds(List<Integer> ids);

XMLの設定ファイル内では、Listパラメータを繰り返し処理するためにforeachタグを使用することができます。以下に示します:

<select id="selectUserByIds" resultType="User">
    SELECT * FROM user WHERE id IN
    <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>
  1. コレクションをMapを使用して渡すことができます。コレクションをMap形式にパッケージしてSQLステートメントに渡すことができます。Mapperインターフェースでメソッドを定義する際、Mapをパラメータとして渡すことができます。Mapのキーはカスタマイズ可能で、値はコレクションの種類になります。例えば:
public List<User> selectUserByIds(Map<String, Object> map);

XML設定ファイルで、Mapのキーを使用してコレクションパラメーターを取得できます。以下に示す通り:

<select id="selectUserByIds" resultType="User">
    SELECT * FROM user WHERE id IN
    <foreach item="id" collection="ids" open="(" separator="," close=")">
        #{id}
    </foreach>
</select>

実際の開発では、要件に応じて、これら2つの方法のうち適切な方法を選択して、SQLステートメントにコレクションパラメータを効果的に渡すことができます。

bannerAds