mybatis使用foreach语句实现IN查询

mybatis使用foreach语句实现IN查询

先看一个实例

mapper.java:

List<User> selectByIdSet(@Param("idList")List<Integer> idList);

mapper.xml

 <select id="selectByIdSet" resultMap="BaseResultMap">
    SELECT
    <include refid="Base_Column_List" />
    from t_user
    WHERE id IN
    <foreach collection="idList" item="id" index="index"
             open="(" close=")" separator=",">
      #{id}
    </foreach>
  </select>

log打出的执行时的sql语句:

insert into t_user (id, name, age, sex, create_time) values (?, ?, ?, ?) 

foreach语句中, collection属性的参数类型可以使:List、数组、map集合

​ collection: 必须跟mapper.java中@Param标签指定的元素名一样

​ item : 表示在迭代过程中每一个元素的别名,可以随便起名,但是必须跟元素中的#{}里面的名称一样。

    index :表示在迭代过程中每次迭代到的位置(下标)

    open :前缀, sql语句中集合都必须用小括号()括起来

​ close :后缀

    separator :分隔符,表示迭代时每个元素之间以什么分隔

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值