mybatis 关于 传入参数为集合list和map的写法

1、mybatis 中foreach的用法

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束。

使用 foreach 时特别要注意这个属性,不同的条件下这个值是不一样的

(1)、当传入的参数为list的时候,collection属性值为list

(2)、当传入的参数为array,collection的属性值为array 

例如,当传入的参数为 list的时候

  

当传入的参数为array的时候

 

2、当传入的参数为map的时候

比如 Map map=new HashMap<>();

map.put("userName", name);

map.put("userPhoto", photo);

那么在mybatis中怎样写呢


3、当传入的参数为map,并且map的key为list,那么在mybatis中又该怎么写呢

例如: List label=new ArrayList<>;

 label.add("ky");         label.add("gt") 

Map map=new HashMap<>();

map.put("labelList", label);

 

特别要注意用红色标注的地方,这里使用了动态的sql。加括号是为了让这个字段合并为一个条件。如果不加括号查出来的结果就会不一样,不信可以试一下。写的不好的地方请谅解!

你可能感兴趣的:(mybatis 关于 传入参数为集合list和map的写法)