MybatisでListを使用してinクエリを使う方法は何ですか?

MyBatisでListを使用してin句を渡す場合、動的SQLのforeachタグを使うことで実現できます。以下は簡単な例です:

UserクラスとUserMapperインターフェースがあると仮定し、ユーザーIDリストに基づいてユーザー情報を取得する必要があります。

public interface UserMapper {
    List<User> selectUsersByIdList(@Param("idList") List<Integer> idList);
}

UserMapper.xmlファイル内では、foreachタグを使用して実現できます。

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

この例では、idListは渡されたListです。foreachタグはidListの各要素をループし、それをSQLステートメントのIN条件に結合します。

使用例:

List<Integer> idList = Arrays.asList(1, 2, 3);
List<User> users = userMapper.selectUsersByIdList(idList);

Listをinで渡して、対応するユーザー情報を検索できます。

广告
広告は10秒後に閉じます。
bannerAds
bannerAds