美文网首页
19、mybatis-动态sql-foreach

19、mybatis-动态sql-foreach

作者: 唯老 | 来源:发表于2019-08-21 00:35 被阅读0次

一、概要

动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历
foreach可以遍历三种类型,List,array,Map

二、属性

属性 说明
item 必选。循环体中的具体对象。 在list和数组中是其中的对象,在map中是value。
collection 必选
1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
2. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
3. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map
separator 可选。元素之间的分隔符
open 可选。循环前添加前缀
close 可选。循环后添加后缀
index 可选。在list和数组中,index是元素的索引,在map中,index是元素的key

三、栗子

遍历集合

List<User> findByIdList(@Param("ids") List<Integer> ids);
<select id="findByIdList" resultMap="BaseResultMap">
  SELECT
  <include refid="Base_Column_List" />
  from user
  WHERE uid IN
  <foreach collection="ids" item="id" index="index"
           open="(" close=")" separator=",">
    #{id}
  </foreach>
</select>

遍历map

// 参数封装成Map的类型
User findKeysCol(@Param("map")Map<String, Object> map);
  <select id="findKeysCol" resultType="User">
        SELECT *
        FROM user
        WHERE
        <foreach item="item" index="key" collection="map"
                 open="" separator="AND" close="">${key} = #{item}
        </foreach>
    </select>

相关文章

  • 19、mybatis-动态sql-foreach

    一、概要 动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历foreach可以遍历三种类型,List,ar...

  • 动态sql-foreach(mybatis)

    一、概要 动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历 foreach可以遍历三种类型,List,a...

  • Mybatis-动态SQL

    概述ifchoose when otherwisetrim where setforeachtest元素 欢迎访问...

  • mybatis-动态sql

    动态sql,减少了我们的sql标签的书写,简化我们业务层的开发1.where if标签当我们发送name时就会根据...

  • MyBatis-动态SQL

    MyBatis动态SQL元素 1. 满足条件就执行对应的sql语句 小提示: 问:为什么要用where...

  • Mybatis-传入动态sql

    1. mybatis 传入sql 语句执行 实现: application.yml pom

  • MyBatis-动态SQL常用标签

    功能标签名称定义sql语句insertdeleteupdateselect配置java对象属性与查询结果集中列名对...

  • 16、mybatis-动态sql-if

    一、说明 if元素 是简单的条件判断逻辑,满足指定条件时追加 if元素内的SQL,类似于Java 中的 if语句...

  • Web框架-Mybatis-动态SQL

    Java工程师知识树[https://www.jianshu.com/p/db77d19a25f6] / We...

  • 15、mybatis-映射文件-动态sql

    一、概要 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都...

网友评论

      本文标题:19、mybatis-动态sql-foreach

      本文链接:https://www.haomeiwen.com/subject/tcpdsctx.html