マイバティスでリストを渡す方法は何がありますか?

MyBatisは、Listを渡すための以下の方法を提供しています。

  1. Mapperのメソッドには、Listを引数として渡すことができ、そのListの値をforeachループでSQL文内で処理できます。
public interface UserMapper {
    List<User> getUserList(List<String> ids);
}
<select id="getUserList" parameterType="java.util.List">
    SELECT * FROM users WHERE id IN
    <foreach item="item" collection="list" separator="," open="(" close=")">
        #{item}
    </foreach>
</select>
  1. 複数の値を渡すために、配列を使用してください。Listと同様に、Listを配列に置き換えるだけです。
public interface UserMapper {
    List<User> getUserList(String[] ids);
}
<select id="getUserList" parameterType="java.lang.String[]">
    SELECT * FROM users WHERE id IN
    <foreach item="item" collection="array" separator="," open="(" close=")">
        #{item}
    </foreach>
</select>
  1. 複数の値を渡すためにパラメーターとしてラッパークラスを使用します。複数の値をラッパークラスに詰め込んで、Mapperインターフェースのメソッドでそのラッパークラスをパラメーターとして使用することができます。
public class IdListWrapper {
    private List<String> ids;

    // getter and setter
}

public interface UserMapper {
    List<User> getUserList(IdListWrapper idListWrapper);
}
<select id="getUserList" parameterType="com.example.IdListWrapper">
    SELECT * FROM users WHERE id IN
    <foreach item="item" collection="ids" separator="," open="(" close=")">
        #{item}
    </foreach>
</select>

これらの方法はすべて、Listを受け取る機能を実現することができますので、具体的な要求に応じて適切な方法を選択してください。

bannerAds