2019独角兽企业重金招聘Python工程师标准>>>

在使用foreach的时候最容易出错的就是collection属性,该属性是必须指定的,在不同情况 下,该属性的值是不一样的,主要有一下3种情况:

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

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

3.     如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在breast里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.

我采用mybatis直接将数组当作参数传入总是出现错误,说找不到参数,也按照上述的条件一一尝试结果还是不行,我想可能出现这个问题的原因是mybatis的版本问题。后来采用传入一个实体,在实体里面定义数组的方法。然后操作,这样就不出错了。此方法虽为下册,但也可以应付一些关键问题。

下面看看代码把!

实体bean:

package com.huaat.weibo.vo;import java.io.Serializable;/*** 我的微博实体* @author jing.yue* @version 2012/07/17 1.0.0*/
public class MyWeibo implements Serializable {private static final long serialVersionUID = 754681127580984228L;private String[] fileNames;private String[] fileUrls;public String[] getFileNames() {return fileNames;}public void setFileNames(String[] fileNames) {this.fileNames = fileNames;}public String[] getFileUrls() {return fileUrls;}public void setFileUrls(String[] fileUrls) {this.fileUrls = fileUrls;}}

下面为mybatis的配置文件[myWeibo为实体]:

<!-- 删除微博 --><delete id="delMyWeibo" parameterType="myWeibo">delete from my_weibo where weibo_id in<foreach item="item" index="index" collection="fileUrls" open="(" separator="," close=")">#{item}</foreach></delete>

解释下foreach的参数:

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

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

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

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

close表示以什么结束.

至于调用这个方法的代码:

/*** 删除微博* @param myWeibo*/public abstract void delMyWeibo(MyWeibo myWeibo);

这样就解决这个问题了~

原文来自:https://www.52jingya.com/aid5.html

转载于:https://my.oschina.net/castusz/blog/67828

mybatis处理集合和循环数组问题相关推荐

  1. mybatis处理集合、循环、数组和in等语句的使用

    2019独角兽企业重金招聘Python工程师标准>>> 在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句. foreach的参数: foreach元素的属性 ...

  2. Scala语法(一) 基础语法(变量常量判断循环数组集合)

    前言 在前面的章节中, 我们介绍了如何在Eclipse内安装Scala环境. 本章开始, 我们将讲解下Scala的基本语法. PS: 1. 个人虽然没有想转Scala语言开发的思想, 但是近来Scal ...

  3. Mybatis调用PostgreSQL存储过程实现数组入参传递

    前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: CREATE OR ...

  4. js中的数组方法以及循环数组的方法

    目录 前言 一.数组是什么? 二.数组基本操作方法 1.创建数组 2.常用数组方法 三.循环数组的方法 总结 前言 数组是用来存储元素的一种非常重要的方式,掌握常用的数组方法以及学会遍历数组是学习编程 ...

  5. List集合与Array数组之间的互相转换

    1.数组转化成list集合(采用java中集合自带的asList()方法就可以完成转换了) String[] array = new String[] {"123", " ...

  6. MapString, Object map 集合转 json数组, json数组转list ,按条输出到es

    2019独角兽企业重金招聘Python工程师标准>>> Map<String, Object> map 集合转 json数组, json数组转list ,按条输出到es ...

  7. 【C++算法与数据结构学习笔记------用循环数组实现队列】

    照王晓东<数据结构>(C++语言版)上打的,以备留用. 1 #include <iostream> 2 using namespace std; 3 template<t ...

  8. 循环数组的最大子段和

    问题描述: N个整数组成循环序列,求这个序列的最大子段和. 例如:-2   11  -4  13  -5  -2    ANSWER: 20 解决: 解决这个问题需要有求解最大子段和的基础. 循环数组 ...

  9. 力扣【下一个更大元素】leetcode-503.下一个更大元素 Ⅱ:单调栈解法+循环数组解法

    题目: 思路与解法: 1.如果是暴力法,只需要遍历就可以了,但是那样的话时间复杂度就是O(N^2); 2.可以把这几个数字,抽象成为高度不一样的柱子: 3.寻找的过程,就是从当前柱子去看,被后面的哪一 ...

最新文章

  1. MFC静态文本控件设置超链接
  2. 华为手机助手解析包时出现问题_iOS12.0-12.1.2设备降级/平刷iOS12.0-12.1.2教程(付问题解决)...
  3. python的sorted函数用法_Python sorted函数及用法
  4. Kafka常用命令大全
  5. 还有什么不能做?——细谈在C#中读写Excel系列文章之一
  6. 微任务与宏任务与eventloop
  7. 【转】医学图像中的窗宽、窗位!!
  8. Android核心基础(五)
  9. 剑指OFFER之包含min函数的栈(九度OJ1522)
  10. RpcException:No provider available for remote service异常
  11. shell学习之获取用户的输入命令read
  12. python3 与python2 异常处理的区别与联系
  13. IIS开启了GZIP和XCACHE之后飞快
  14. 80核处理器_【装机帮扶站】第338期:95元的6核心12线程处理器
  15. 5G移动通信网的定位技术发展趋势
  16. 寄给J.Keisler教授的一份电子生日贺卡(修正版)
  17. 出售永磁同步电机(pmsm)模型预测控制(MPC)matla b/simulink仿真模型,转速控制,电流控制,转矩控制,有PI矢量控制,直接预测控制(有限集模型预测控制)(这个其中包括做了单矢量和双
  18. 从互联网大厂跳槽到国企后,我发现没有一劳永逸的工作。。。
  19. keras-segmentation-master代码详解
  20. 谷歌是如何以简洁赢取用户的

热门文章

  1. 使用证书登陆Linux服务器
  2. There is no getter for property named 'XXX' in class 'aaa.bbb.ccc'(终极骚操作的解决方法)...
  3. Azure系列1.1.2 —— 用于 IntelliJ 的 Azure 工具包的登录说明
  4. Liferay 7:Liferay内部博客地址
  5. python中的不可变类型和可变类型
  6. .net开发笔记(十三) Winform常用开发模式第一篇
  7. 低学历的非要考研,多半输得更惨
  8. 月薪15k起,想进入这个行业有哪些书值得读?
  9. 5种不会被机器智能替代的能力
  10. 8000种子用户创造指数级裂变,谁说当年校内网发家是靠鸡腿?