mybatis 3 insert foreach的用法
时间: 2023-05-03 17:07:45 浏览: 194
MyBatis 3中可以使用foreach标签将一个集合中的元素批量插入到数据库中。具体用法如下:
1. 定义需要插入的POJO对象列表
```
List<User> userList = new ArrayList<User>();
User user1 = new User();
user1.setName("张三");
user1.setAge(20);
userList.add(user1);
User user2 = new User();
user2.setName("李四");
user2.setAge(22);
userList.add(user2);
```
2. 在mapper.xml中使用foreach标签
```
<insert id="batchInsertUser">
insert into user(name, age) values
<foreach collection="userList" item="user" separator=",">
(#{user.name}, #{user.age})
</foreach>
</insert>
```
注:collection属性指定需要遍历的集合,item属性指定集合中的每个元素,separator属性指定每个元素之间的分隔符。
3. 在Java代码中调用mapper方法
```
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.batchInsertUser(userList);
sqlSession.commit();
sqlSession.close();
```
以上代码会将userList中的所有用户插入到数据库中。
需要注意的是,在使用foreach标签时,需要保证集合中的元素顺序与插入顺序一致,否则会导致数据错乱。同时,使用foreach标签也会增加SQL语句的执行时间,因此在数据量较大时需要谨慎使用。
阅读全文