Mybatis遍历查询 ——foreach
Posted 薛小生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); } }
以上是关于Mybatis遍历查询 ——foreach的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis之foreach用法----ListArrayMap三种类型遍历
MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段
Mybatis 的 foreach 批量模糊 like 查询及批量插入
Mybatis 的 foreach 批量模糊 like 查询及批量插入