mybatis mysql foreach_(21)MyBatis的动态SQL:foreach元素

关于动态SQL另外一个常用的操作就是需要对一个集合进行遍历,通常发生在构建IN条件语句时。

SELECT * FROM tb_employee WHERE ID in

open="(" separator="," close=") ">

#{item}

foreach元素的功能非常强大,它允许指定一个集合,声明可以用在元素体内的集合项和索引变量。它也允许指定开闭匹配的字符串以及在迭代中间放置分隔符。这个元素是很智能的,

因此它不会随机地附加多余的分隔符。

// 根据传入的id集合查询员工

List selectEmployeeIn(List ids);

selectEmployeeIn方法传入的参数是一个List集合,该集合中的每一个Integer元素表示需要查询的员工的id。

public void testSelectEmployeeIn(sqlSession session){

EmployeeMapper em = session.getMapper(EmployeMapper.class);

// 创建List集合

List ids = new Arraylist();

// 往List集合中添加两个测试数据

ids.add(1);

ids.add(2);

List 1ist = em.selectEmployeeIn(ids);

list.forEach(employee->System.out.println(employee));

}

测试selectEmployeeln方法,控制台显示如下:

DEBUG [main]==> Preparing: SELECT * FROM tb employee WHERE ID in( ? , ? )

DEBUG [main]==> Parameters: 1(Integer) , 2 (Integer)

DEBUG [main]<== Total: 2

Employee [id=1,loginname=jack,password=123456,name=杰克,sex=男,age=26,phone=13902019999,sal=9800.0,state=ACTIVE]

Employee [id=2,loginname=rose,password=123456,namem露丝,sex=女,age=21,phone=13902018888,sal=6800.0,state=ACTIVE]

可以看到,执行的sql语句是一个in条件语句,返回的是List集合中的id的员工数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值