> 文档中心 > mybatis使用foreach插入map或者list对象

mybatis使用foreach插入map或者list对象

文章目录

    • 1. 插入map
      • controller 层
      • dao层
      • mapper层
      • 结果
    • 2. 插入list对象
      • 对象实体类
      • controller层
      • 请求参数
      • dao层
      • mapper层
      • 结果

1. 插入map

为了方便就不要service层了

controller 层

Map<Integer,String> map=new HashMap();     map.put(5,"sb");     map.put(6,"dsb");     map.put(7,"wbd");     if (testDao.insert(map)>0){  return true;     }else {  return false;     }

dao层

int insert(@Param("map") Map map);

mapper层

<insert id="insert" parameterType="map" useGeneratedKeys="true"> insert into sys_post (post_id,post_code) values <foreach collection="map" item="value" index="key" separator=",">     (#{key},#{value}) </foreach>    </insert>

注意:
dao层参数必须用@param,值可以随便填,但是mapper中的collection要与之相同,其他为固定写法

结果

mybatis使用foreach插入map或者list对象

2. 插入list对象

对象实体类

public class User {   private  Integer id;   private String value;}

controller层

 public boolean showKeyName1(@RequestBody List<User> user) { if (testDao.insert1(user) > 0) {     return true; } else {     return false; }    }

请求参数

[{    "id":100,    "value":"sb"},{    "id":101,    "value":"s11b"}]

dao层

int insert1(List<User> user);

mapper层

  <insert id="insert1" parameterType="java.util.List" useGeneratedKeys="true"> insert into sys_post (post_id, post_code) values <foreach collection="list" item="item" index="index" separator=",">     (     #{item.id,jdbcType=INTEGER},     #{item.value,jdbcType=VARCHAR}     ) </foreach>    </insert>

注意:当传入list时,collection要写list,item的值随意,但是取对象时要使用,其他为固定写法

结果

mybatis使用foreach插入map或者list对象

神唱ktv下载