zoukankan      html  css  js  c++  java
  • 13、动态sql之Foreach

    查询前三条记录:

    使用sql:

    select *
    from blog
    where (id = 1 or id = 2 or id = 3);
    

    使用mybatis提供的foreach遍历来写:

      item:字段id

      connection:集合

      open:开始

      close:结束

      separator:分隔符号

      [index]:开始下标

    SELECT *
    FROM blog b
    WHERE id in
      <foreach item="id" index="index" collection="ids"
          open="(" separator="or" close=")">
            id = #{id}
      </foreach>

    代码实现:

      dao层接口(定义方法)

        /**
         * 遍历查询博客信息
         */
        List<Blog> conditionQueryForeach(Map map);

      dao层接口实现类(Mapper.xml)

        <select id="conditionQueryForeach" parameterType="map" resultType="blog">
            select * from blog
            <where>
                <foreach collection="ids" item="id" separator="or">
                    id = #{id}
                </foreach>
            </where>
        </select>

      测试类

        @Test
        public void conditionQueryForeachTest(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
    
            Map map = new HashMap();
    List
    <Integer> ids = new ArrayList<Integer>(); ids.add(1); ids.add(2); map.put("ids",ids); List<Blog> blogs = mapper.conditionQueryForeach(map); for (Blog blog : blogs) { System.out.println(blog); } sqlSession.close(); }

      list集合中传入几个id就查询出几个人的博客信息

  • 相关阅读:
    [GDOI2018]滑稽子图
    单位根反演学习笔记
    ODOO/OPENERP的网页模块QWEB简述
    odoo中的QWeb模板引擎
    项目管理)沟通管理
    从vc6升级到vc7的一些问题及解决方法
    vc++ 2005 发布程序
    颜色取反
    几个VC6.0到VC9.0的错误解决方案
    测试计划测试用例
  • 原文地址:https://www.cnblogs.com/zhangzhixi/p/14217136.html
Copyright © 2011-2022 走看看