mybatis list<map>作为参数 foreach循环

dao层参数为List<类型> ,类型也可以是Map类型,mapper配置文件形式如下


这样写就ok啦!注意:collection必须为list因为mybatis官方文档中写道:
( 你可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你这么做的时 候,MyBatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键。)


以下内容添加日期2019-5-15

为什么这篇文章写这么烂还有这么多人看?而我的其他文章没人看啊!

正文

以上对<foreach/>的说明是基于list的的,下面来讲下对数组的支持。

XXXMapper.java文件内容如下:

int insertOrder(OrderInfo[] orders);

与之对应的mapper XML配置文件:

<insert id = "insertOrder">
  INSERT INTO  order (
    money,
    remark
  )
  VALUES
  <foreach collection = "array" item = "item" separator = ",">
    #{item.money},
    #{item.remark}
  </foreach>
</insert>

说明:

  1. item是引用的名称,提供给#{}使用。
  2. separator是每条item的分隔符。

注意点:

  1. 还有一个地方需要注意的是如果你的循环对象使用的@Param("extraName")注解或者你的list/数组包含在一个对象中,则不能使用listarray作为collection的参数(即,collection = "array"collection = "list"),而是需要使用@Param的值或对象的引用名称。
  2. 如果你的listarray是一个简单类型可以直接这样使用,如下:

XXXMapper.java文件内容如下:

int insertOrder(String[] orders);

与之对应的mapper XML配置文件:

<insert id = "insertOrder">
  INSERT INTO  order (
    money
  )
  VALUES
  <foreach collection = "array" item = "item" separator = ",">
    #{item}
  </foreach>
</insert>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容