mybatis的xml中sql语句中in的写法(迭代遍历)

这里使用 foreach标签

<foreach  item="item" collection="listTag" index="index"  open="(" separator="," close=")">

#{item}

</foreach>

foreach元素的属性主要有 item,index,collection,open,separator,close。

item表示集合中每一个元素进行迭代时的别名.

index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.

open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.

close表示以什么结束.

1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

<select id="addList" resultType="map">

select * from tp_trade where  id in

<foreach  item="item" collection="list" index="index"  open="(" separator="," close=")">#{item}</foreach>

</select>

传入参数的代码为:

List<Object>  addList(List<Object> ids);

2.如果传入的是单参数且参数类型是一个Array数组的时候,collection属性值为array

<select id="addArray" resultType="map">

select * from tp_trade where  tt_type in

<foreach  item="item" collection="array" index="index"  open="(" separator="," close=")">#{item}</foreach>

</select>

传入的参数代码为:
List<Object> addArray(String[]  ids);

3.如果多个参数,我们会封装成map类型,然后在把需要遍历的list或者array封装到map中。

传入的参数代码为:

String str = "1,2,3,4";

Map  map = new HashMap();

map.put("type",str.spit(","));

再把封装好map传入到方法中。

List<Object> addMap(Map<String,Object> map);

<select id="addMap" resultType="map">

select * from tp_trade where  type in

<foreach  item="item" collection="type" index="index"  open="(" separator="," close=")">#{item}</foreach>

</select>

type就是数组集合,使用item遍历即可。
---------------------
转载:https://blog.csdn.net/android_hongshao/article/details/46974935

原文地址:https://www.cnblogs.com/wangzhengyu/p/10417365.html

时间: 2025-01-07 11:25:34

mybatis的xml中sql语句中in的写法(迭代遍历)的相关文章

Mybatis中sql语句中的in查询,一定要判断null的情况

不严谨的写法,可能会报错:in (),这种情况不符合mysql的语法. select from loanwhere LOAN_ID in <foreach item="item" index="id" collection="list" open="(" separator="," close=")"> #{item} 要么在Mybatis的sql文件中,要么在Java程序中

mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等

一, 用<![CDATA[   ]]>标识,例如: <if test="create_timeStart != null and create_timeStart != ''"> <![CDATA[ AND create_time >= ${create_timeStart}]]> </if> 二,转义 < >  也可以>=

Oracle 中sql语句中的取前n条数据

取得薪水最高的前五名员工 sql: select * from ( select empno,ename,sal from emp order by sal desc) where rownum< 6; 注意: select * from ( table ) where rownum< 6; 取前n条数据,oracle中用rownum < m; 1:其中m-1 等于要取的条数 2:rownum 只能有 < ,<= ,没有 > 3: 如m为6,则取得是前5条数据. 原文地

详解Java的MyBatis框架中SQL语句映射部分的编写

这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: ? 1 2 3 4 5 6 <mappers>   <mapper resource="com/limi

Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询

在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以及MyBatis的分页问题. 首先先看看项目的架构,方便后边叙述. 这个项目中是一个Sping+MyBatis的完整demo(这边将页面没有展示.)这次的主题主要是后台数据处理逻辑.接下来为大家逐一介绍各个文件, org.config   Spring配置包括数据库的链接信息 org.control

MyBatis中SQL语句相关内容

MyBatis模糊查询 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE name LIKE '%${text}%'; 在MyBatis中写SQL语句时不等于用 <> 代替 <> 多个条件中的模糊查询 SELECT * FROM 表名 WHERE (字段1 <> "" 字段2 <> "") and (字段3 LIKE '%参数%' OR 字段4 LIKE '%参数%')

转王波洋,SQL语句中的 for XML Path(&#39;&#39;)

FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主. 一.FOR XML PATH 简单介绍              那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用FOR XML PATH的查询结果语句如下: SELECT * FROM @hobby FO

mybatis sql语句中 like in() 长度为0或null的情况

mybatis sql语句中 like in() 长度为0或null的情况 比如: select * from A where colName LIKE IN <foreach collection="moCodeList" item="item" index="index" open="(" close=")" separator=","> #{item} </for

mybatis sql语句中转义字符

问题: 在mapper  ***.xml中的sql语句中,不能直接用大于号.小于号要用转义字符 解决方法: 1.转义字符串 小于号    <    < 大于号    >    > 和    & & 单引号    '    &apos; 双引号    "    " 2.使用<![CDATA[  你的sql语句 ]]>(sql语句中的<where><if>等标签不会被解析) 如: SELECT top ${