Mybatis遍历查询 ——foreach

第一步:

  在xxxMapper接口中添加一个函数,返回一个list,这里的参数是一个integer类型的集合

public List<Emp> findEmpByList(@Param("list") List<Integer> list);

第二步:

  在xxxMapper.xml 中添加statement语句(SQL语句)。

  如SQL语句:select * from employee where id in (1 ,2 , 3,4 ); 
<select id="findEmpByList" resultType="com.neuedu.bean.Emp">
        select * from employee where id in 
        <!-- select * from employee where id in ( , , , ); -->

<foreach collection="list" item="id" open="(" close=")" separator=","> #{id} </foreach> </select>

  foreach标签中

    collection:指定要遍历的集合
    item:将当前遍历出的元素赋值给指定的变量
    separator:每个元素之间的分隔符
    open:遍历出所有结果拼接一个开始的字符
    close:遍历出所有结果拼接一个结束的字符

第三步:测试

@Test
    public void testFindEmpByList(){
  //获取IOC容器 ApplicationContext ioc
=new ClassPathXmlApplicationContext("spring.xml");
//从IOC容器中获取bean对象 EmployeeMapper bean
= ioc.getBean(EmployeeMapper.class);
//创建一个集合 List
<Integer> list=Arrays.asList(1,2,3);
//使用bean对象的方法 List
<Emp> findEmpByList = bean.findEmpByList(list); for (Emp emp : findEmpByList) { System.out.println(emp); } }
原文地址:https://www.cnblogs.com/xuesheng/p/7485338.html