mybatis动态批量新增 insert
时间: 2023-06-29 12:11:13 浏览: 90
MyBatis批量插入(insert)数据操作
5星 · 资源好评率100%
MyBatis 提供了批量插入的功能,可以通过 `insertList` 方法来实现。以下是一个示例代码:
```java
public void batchInsert(List<User> userList) {
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
for (User user : userList) {
userMapper.insert(user);
}
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
throw e;
} finally {
sqlSession.close();
}
}
```
以上代码中,我们首先使用 `sqlSessionFactory` 获取一个 `SqlSession` 对象,并将其设置为批处理模式。然后,我们获取 `UserMapper` 的实例,并循环遍历 `userList`,逐个插入数据。最后,我们提交事务并关闭 `SqlSession`。
需要注意的是,在批处理模式下,MyBatis 会将所有的插入语句缓存起来,直到 `SqlSession` 执行 `commit` 或 `rollback` 方法时才会真正地执行插入操作。这样可以提高效率,减少数据库连接的开销。
阅读全文