Mybatis的动态语句的使用:foreach

    <!--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);
        }
    }

 

posted @ 2021-02-23 23:47  渐行、渐远  阅读(423)  评论(0)    收藏  举报