<foreach>元素中collection=list改成collection=array

简介: <foreach>元素中collection=list改成collection=array
<select id="findCustomerByIds" parameterType="List" resultType="customer">
           select * from t_customer where id in
            <foreach item="id" index="index" collection="array" 
                            open="(" separator="," close=")">
                   #{id}
            </foreach>
</select>



当collection改成array时候  改成Integer[] array = new Integer[] {};

@Test
  public void findCustomerByIdsTest() throws Exception{
  
    SqlSession  sqlSession = MyBatisUtils.getSession();
//    List<Integer> ids = new ArrayList<Integer>();
//    ids.add(1);
//    ids.add(2);
     Integer[] array = new Integer[] {1, 2, 3, 4};
     List<Customer> customers =         
         sqlSession.selectList("com.wy.mapper.CustomerMapper.findCustomerByIds", array);
    
     for(Customer customer : customers) {
       System.out.println(customer);
     }
    
    sqlSession.close();
  }

在 MyBatis 中,`<foreach>` 元素通常用于在 SQL 语句中迭代集合的元素。当 `collection` 属性的值是一个 List 类型时,`<foreach>` 会遍历 List 中的元素。如果你要遍历的是数组,需要将 `collection` 属性的值改为数组名。

以下是从 List 改为数组的示例:

假设原始的 SQL 语句是这样的:

```xml

<select id="selectUsersByIds" parameterType="java.util.List" resultType="User">

 SELECT * FROM users WHERE id IN

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

   #{item}

 </foreach>

</select>

```

将其中的 `collection` 从 `ids`(List)改为 `array`(数组):

```xml

<select id="selectUsersByIds" parameterType="int[]" resultType="User">

 SELECT * FROM users WHERE id IN

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

   #{item}

 </foreach>

</select>

```

在这个例子中,`parameterType` 设置为 `int[]` 表示传入的参数是一个整数数组。同时,`collection` 设置为 `array`,表示在 SQL 中使用数组进行迭代。

请根据你的实际情况调整参数类型、SQL 语句和其他属性。这只是一个简单的示例,实际场景可能需要根据具体情况进行更灵活的配置。


相关文章
|
1月前
|
Java
JAVA——List中剔除空元素(null)的三种方法汇总
JAVA——List中剔除空元素(null)的三种方法汇总
|
1月前
|
算法 安全 Java
java将list中的某个元素移动位置
【2月更文挑战第12天】
|
2月前
|
Java
Java对list集合元素进行排序的几种方式
Java对list集合元素进行排序的几种方式
22 0
|
3月前
|
存储 Java 索引
从零开始学习 Java:简单易懂的入门指南之Collection集合及list集合(二十一)
从零开始学习 Java:简单易懂的入门指南之Collection集合及list集合(二十一)
|
3月前
|
Java
java8 foreach用法list转map、map转list
java8 foreach用法list转map、map转list
|
4月前
|
存储 算法 Java
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
|
1月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
26天前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
19 6
|
1月前
|
安全 Java API
Java并发 - J.U.C并发容器类 list、set、queue
Queue API 阻塞是通过 condition 来实现的,可参考 Java 并发 - Lock 接口 ArrayBlockingQueue 阻塞 LinkedBlockingQueue 阻塞 ArrayQueue 非阻塞 LinkedQueue 非阻塞
|
1月前
|
存储 安全 Java
【Java】集合(一)单列集合List
【Java】集合(一)单列集合List
22 0