mybatis 批量插入
时间: 2023-07-03 20:29:30 浏览: 41
Mybatis 提供了批量插入的功能,可以大大提高数据插入的效率。以下是一些示例代码:
1. 使用 foreach 标签循环插入数据
```xml
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO user(name, age) VALUES
<foreach collection="list" item="user" separator=",">
(#{user.name}, #{user.age})
</foreach>
</insert>
```
在上面的示例中,使用了 Mybatis 的 foreach 标签来循环插入数据。其中,collection 属性指定了要插入的数据列表,item 属性指定了循环变量名,separator 属性指定了每条插入语句之间的分隔符。
2. 使用批量操作方法
```java
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
try {
for (User user : userList) {
userMapper.insert(user);
}
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
} finally {
sqlSession.close();
}
```
在上面的示例中,通过 SqlSession 的 openSession 方法创建批量操作的 SqlSession,然后通过 getMapper 方法获取 UserMapper 的实现类,循环调用 insert 方法插入数据,最后通过 commit 方法提交事务。注意,如果出现异常需要回滚事务,最后要关闭 SqlSession。
以上就是 Mybatis 批量插入的两种方式。根据具体的业务需求和数据量大小,可以选择不同的方式来提高插入效率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)