请分别给出例子
时间: 2023-10-10 14:12:59 浏览: 31
1. 使用foreach标签和insert语句的批量插入示例:
MyBatis XML 配置文件中:
```xml
<insert id="batchInsert">
<foreach collection="list" item="item" index="index" separator=";">
INSERT INTO user (id, name, age) VALUES (#{item.id}, #{item.name}, #{item.age})
</foreach>
</insert>
```
Java 代码中:
```java
List<User> userList = new ArrayList<User>();
// 添加多个 User 对象到 userList 中
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
UserDao userDao = sqlSession.getMapper(UserDao.class);
userDao.batchInsert(userList);
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
} finally {
sqlSession.close();
}
```
2. 使用 insert 语句和 BatchExecutor 的批量插入示例:
Java 代码中:
```java
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
UserDao userDao = sqlSession.getMapper(UserDao.class);
for (User user : userList) {
userDao.insert(user);
}
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
} finally {
sqlSession.close();
}
```
需要注意的是,BatchExecutor 默认的 batchSize 值是 1000,如果需要调整 batchSize 值可以在 MyBatis 的配置文件中进行配置:
```xml
<configuration>
<settings>
<setting name="defaultExecutorType" value="BATCH"/>
<setting name="jdbc.batch.size" value="500"/>
</settings>
</configuration>
```