当前位置: 首页 > 知识库问答 >
问题:

Mybatis foreach集合是map参数中的列表

鲁旭
2023-03-14
List<BuddyId> findBuddyIds(HashMap<String, Object> map);
<select id="findBuddyIds" parameterType="map" resultMap="BuddyIdResultMap">
select * 
from seerid.buddyIds
where id REGEXP
<foreach collection="idSplits" item="item" index="index" open="'" close="'" separator="|">
    #{item}
</foreach>
</select>
HashMap<String,Object> map = new HashMap<String,Object>();

map.put("idSplits", new ArrayList<String>(Arrays.asList(idSplits)));

buddyScanResult = seerIdDAO.findBuddyIds(map);

我不知道如何解决这个问题。

请帮帮我.

共有1个答案

洪俊捷
2023-03-14

我发现了这个问题,也许可以解决这个问题。您的xml有一个错误:

<select id="findBuddyIds" parameterType="map" resultMap="BuddyIdResultMap">
select * 
from seerid.buddyIds
where id REGEXP
<foreach collection="idSplits" item="item" index="index" open="'" close="'" separator="|">
    ${item}
</foreach>
</select>

您应该在foreach中使用$replace#。

MyBatis问题与IN条件

 类似资料:
  • Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。 用于保存具有映射关系的数据。 Map 集合里保存着两组值,一组值用于保存 Map 里的 key,另外一组值用于保存 Map 里的 value, key 和 value 都可以是任何引用类型的数据。Map 的 key 不允许重复,value 可以重复,即同一个 Map

  • 概述 Map 集合是无序的 key-value 数据结构。 Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。 声明 Map //demo_14.go package main import ( "fmt" ) func main() { va

  • Map和Set都叫做集合,但是他们也有所不同。Set常被用来检查对象中是否存在某个键名,Map集合常被用来获取已存的信息。 Set Set是有序列表,含有相互独立的非重复值。 创建Set 既然我们现在不知道Set长什么样,有什么价值,那么何不创建一个Set集合看看呢? 创建一个Set集合,你可以这样做: let set = new Set(); console.log(set);

  • 我有包含字符串ID的集合idList。函数getCollection返回单个ID项的集合(类型为MyType)。此外,它可能返回null。 所以对于idList中的许多id,我会得到一些null和一些集合。 目标是收集getCollection对一组ID的所有回复到最终列表中。 我想象过 但它似乎不是一个有效的表达式。如何使它有效? 另外,这个实现的性能如何?

  • 问题内容: 我有5个参数,我想将它们发送给方法: 我可以像这样一次发送这些参数吗? 问题答案: 或手动创建参数数组: 但是我看不出您的方法应该有什么问题。它简单,易读且易于理解。

  • 本文向大家介绍java 集合----Map、Collection,包括了java 集合----Map、Collection的使用技巧和注意事项,需要的朋友参考一下 接口:红色;实现类:黑色字体 一、 Collection集合  Collection  |_____Set(HashSet)  |      |_____SortedSet(TreeSet)  |_____List(ArrayList,