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

摘要:
传入的参数代码为:Stringstr=“1,2,3,4”;Mapmap=newHashMap();地图放然后将封装的映射传递到方法中。

这里使用 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 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 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 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 

免责声明:文章转载自《mybatis的xml中sql语句中in的写法(迭代遍历)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇esp8266物联网开发五:SSL保驾护航Unity的SpriteAtlas实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转载]oracle 存储过程的基本语法及注意事项

原文地址:oracle 存储过程的基本语法及注意事项作者:简单爱  oracle 存储过程的基本语法及注意事项 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN...

SQL这样干,你就是给自己刨坑.....

SQL是作为一个程序员接触得非常多的一种语言,但是,很多时候,我们会发现,有些SQL的执行效率异常的差,造成了数据库的负担。我们通过分析这些有问题的SQL,就可以发现很多我们平时在写SQL的时候忽略的问题。 今天,我们就来讲一下这些需要改掉的坏习惯。 尽量少用负向条件查询 假设我们有一个Order表,表中有一个字段是Status,这个字段有4个值,分别是0...

oracle查询连接数、并发数、共享池大小

1、查看当前数据库建立的会话情况: select sid,serial#,username,program,machine,status from v$session; 2、查询数据库当前进程的连接数: select count(*) from v$process; 3、查看数据库当前会话的连接数: select count(*) from v$sessi...

MySQL查询性能优化

1.为什么查询速度为变慢 在尝试编写快速的查询之前,需要清楚一点,真正重要是响应时间。如果把查询看作是一个任务,那么他由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行的次数,要么让子任务运行得更快。 MySQL在执行查询的时候有哪些子任务。哪些子任务运行的速度很慢,这里很难...

在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间

在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间 ------解决方案----------------------本周 select trunc(sysdate,'d')+1 from dual; select trunc(sysdate,'d')+7 from dual; --本月 select trunc(sysd...

解决Intellij IDEA中Mybatis Mapper自动注入警告

问题描述: 首先说明自己出现上述原因是因为在mapper接口上方用的是@mapper标签,如果用@Repository标签替换可以解决这个问题 (idea可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了。 而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在...