<!--foreach 第一种用法,循环list-->
<select id="selectForeach" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where id in
<foreach collection="list" item="myid" open="(" close=")" separator=",">
#{myid}
</foreach>
</select>
<!--foreach 第二种用法,循环的参数是一个对象-->
<select id="selectForeachObj" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where id in
<foreach collection="list" item="stu" open="(" close=")" separator=",">
#{stu.id}
</foreach>
</select>
//foreach标签使用,参数是一个普通list集合
List<Student> selectForeach(List<Integer> list);
//foreach标签使用,参数是一个对象集合
List<Student> selectForeachObj(List<Student> list);
@Test
public void selectForeach(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentDao dao = sqlSession.getMapper(StudentDao.class);
List<Integer> list = new ArrayList<>();
list.add(1001);
list.add(1002);
list.add(1003);
List<Student> students = dao.selectForeach(list);
for(Student stu:students){
System.out.println(stu);
}
}
@Test
public void selectForeachObj(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentDao dao = sqlSession.getMapper(StudentDao.class);
List<Student> list = new ArrayList<>();
Student student = new Student();
student.setId(1002);
list.add(student);
Student student1 = new Student();
student1.setId(1003);
list.add(student1);
List<Student> students = dao.selectForeachObj(list);
for(Student stu:students){
System.out.println(stu);
}
}