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

    }
时间: 2024-10-08 09:18:59

Mybatis遍历查询 ——foreach的相关文章

Spring+SpringMVC+MyBatis深入学习及搭建(六)——MyBatis关联查询(转发同上)

原地址:http://www.cnblogs.com/shanheyongmu/p/7122520.html 1.商品订单数据模型 1.1数据模型分析思路 (1)每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程. (2)每张表重要的字段设置 非空字段.外键字段 (3)数据库级别表与表之间的关系 外键关系 (4)表与表之间的业务关系 在分析表与表之间的业务关系时,一定要建立在某个业务意义基础上去分析. 1.2属性模型分析 2.一对一查询 2.1需求 查询订

当在mybatis用到foreach的时候异常

当在mybatis用到foreach的时候,会报这个错误Parameter '__frch_item_0' not found. Available parameters are [list]会出现的几种解决方案 例子 copy < id=  parameterType=> pic_attachment item= = separator=> (#{item.picId},#{item.picUdid},#{item.relateId},#{item.relateCode},#{item

0914 c#的遍历查询-属性扩展

c#的遍历查询 昨天我们的查询只能查询一条数据,查询的只是学号是输入的学号的那个同学的信息,今天我们看一下查看所有的信息 其实步骤跟昨天一样,只需要把查询出来的每个对象放入集合中,在program里面挨个输出来就行了 这是我们的函数,返回值返回一个泛型集合,数据类型就是我们对象的类型,没有长度. public List<xuesheng> select1()        {                                     List<xuesheng> li

“mybatis 中使用foreach 传

为了帮助网友解决“mybatis 中使用foreach 传”相关的问题,中国学网通过互联网对“mybatis 中使用foreach 传”相关的解决方案进行了整理,用户详细问题包括:mybatismapsql <update id="updateallByEntity" parameterType="java.util.List"> update T_WEEKDAY <foreach item="item" index="

Mybatis like查询的写法--转载

原文地址:http://lavasoft.blog.51cto.com/62575/1386870 Mybatis like查询官方文档没有明确的例子可循,网上搜索了很多,都不正确. Mybatis 3.2.6 经过尝试,给出三种可靠可用的写法: select * from person where name  like "%"#{name}"%" select * from person where name  like '%'||#{name}||'%' sel

MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射

先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出现了如下错误:Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer' 因为出现了这个问题,

Mybatis Collection查询集合只出现一条数据

Mybatis Collection查询集合只出现一条数据 1.原因 如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条. 2.解决办法 级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的.但在mybatis中主从表需要为相同字段名设置别名.设置了别名就OK了. 例子: 主表Standard, 从表StandEntity,均有名为id的字段 <resultMap id="StandardAndEntityResultMap"

MyBatis 级联查询一对一与一对多

mybatis是通过映射sql语句把关系模型(数据库中的表)与领域模型(java中的实体类)关联起的  简单分析级联查询:       关系模型中:表与表只有主外键关联       领域模型中:实体类与实体类这间关联,只有一和多的关系.                            一是指别一个实体类以对象属性存在当前实体类中.                            多是指别一个实体类以集合对象属性存在当前实体类中 下面我以例子的形式给大家说明:数据库脚本如下:drop

Javascript 数组循环遍历之forEach

Javascript 数组循环遍历之forEach 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2.  forEach 函数. Firefox 和Chrome 的Array 类型都有forEach的函数.使用如下: [html] view plain copy <!--Add by oscar999--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD