Mybatis之Foreach

来源:互联网 发布:大六壬排盘软件手机版 编辑:程序博客网 时间:2024/06/01 10:22
一:单参数List类型   sql语句:     <select id="dynamicForeachTest" resultType="Blog">         select * from t_blog where id in         <foreach collection="list" index="index" item="item" open="(" separator="," close=")">           #{item}         </foreach>      </select>   上述collection的值为list,对应的Mapper是:       public List<Blog> dynamicForeachTest(List<Integer> ids);   测试代码:      @Test      public void dynamicForeachTest() {        SqlSession session = Util.getSqlSessionFactory().openSession();        BlogMapper blogMapper = session.getMapper(BlogMapper.class);        List<Integer> ids = new ArrayList<Integer>();        ids.add(1);        ids.add(3);        ids.add(6);        List<Blog> blogs = blogMapper.dynamicForeachTest(ids);        for (Blog blog : blogs)          System.out.println(blog);        session.close();   }

二:单参数array数组的类型:    <select id="dynamicForeach2Test" resultType="Blog">      select * from t_blog where id in      <foreach collection="array" index="index" item="item" open="(" separator="," close=")">        #{item}       </foreach>   </select>  上述collection为array,对应的Mapper是:     public List<Blog> dynamicForeach2Test(int[] ids);     对应的测试代码:        @Test        public void dynamicForeach2Test() {          SqlSession session = Util.getSqlSessionFactory().openSession();          BlogMapper blogMapper = session.getMapper(BlogMapper.class);          int[] ids = new int[] {1,3,6,9};          List<Blog> blogs = blogMapper.dynamicForeach2Test(ids);          for (Blog blog : blogs)            System.out.println(blog);          session.close();        }

三:自己把参数封装成Map的类型   <select id="dynamicForeach3Test" resultType="Blog">     select * from t_blog where title like "%"#{title}"%" and id in     <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">       #{item}     </foreach>   </select>  上述collection的值为ids,是传入的参数Map的key,对应的Mapper是:  public List<Blog> dynamicForeach3Test(Map<String, Object> params);  对应测试代码:     @Test     public void dynamicForeach3Test() {     SqlSession session = Util.getSqlSessionFactory().openSession();     BlogMapper blogMapper = session.getMapper(BlogMapper.class);     final List<Integer> ids = new ArrayList<Integer>();     ids.add(1);     ids.add(2);     ids.add(3);     ids.add(6);     ids.add(7);     ids.add(9);     Map<String, Object> params = new HashMap<String, Object>();     params.put("ids", ids);     params.put("title", "中国");     List<Blog> blogs = blogMapper.dynamicForeach3Test(params);     for (Blog blog : blogs)       System.out.println(blog);     session.close();    }


1 0
原创粉丝点击