mybatis批量插入

很多时候我们要批量插入或者更新数据,很多人一般的做法就是在java逻辑bean中,循环批量的数据,一条一条插入。

现在介绍下mybatis的批量插入,即传入一个List类型的参数。

java类(逻辑类):假设我循环插入10条数据,在逻辑类中我模拟作了一个List。

SampleUser sampleUser = null;
List<SampleUser> insertList = new ArrayList<SampleUser>();
for (int i = 0; i < 10; i++) {
    sampleUser = new SampleUser();
    sampleUser.setUserId("list" + i);
    sampleUser.setPassword("password");
    sampleUser.setUserName("list_name" + i);
    insertList.add(sampleUser);
}
return sampleUserMapper.insertByList(insertList);

SampleUserMapper类(mybatis接口类):

int insertByList(List<SampleUser> records);

SampleUserMapper.xml(mybatis sql文件中):

<insert id="insertByList" parameterType="java.util.List">
  insert into sample_user (user_id, password, user_name)
  values
  <foreach collection="list" index="index" item="record" separator=",">
      (#{record.userId,jdbcType=VARCHAR}, #{record.password,jdbcType=VARCHAR}, #{record.userName,jdbcType=VARCHAR})
  </foreach>
</insert>

 注意红色的地方,如果你传入的是List,则collection="list"。

并且可以获取返回值,经过测试返回值为10,DB中数据也插入。

猜你喜欢

转载自xieyan30.iteye.com/blog/1886073