java 使用mybatis循环list集合插入到数据库
时间: 2024-03-19 08:43:42 浏览: 24
使用 MyBatis 循环插入 List 集合到数据库可以使用 MyBatis 的批量插入功能,这样可以大大提高插入效率。具体实现步骤如下:
1. 为 List 集合中的元素创建对应的映射类,例如:
```java
public class User {
private Integer id;
private String name;
private Integer age;
// 省略 getter 和 setter 方法
}
```
2. 在 MyBatis 的 mapper.xml 文件中编写批量插入语句,例如:
```xml
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO user (name, age)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.name}, #{item.age})
</foreach>
</insert>
```
3. 在 Java 代码中调用批量插入语句,例如:
```java
// 假设你已经创建了 SqlSessionFactory 对象和 SqlSession 对象
// 假设你要插入的 List 集合为 userList
try {
sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.batchInsert(userList);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
```
4. 注意事项:
- 批量插入语句中的 #{item.xxx} 表示映射类中的属性,例如 #{item.name} 表示 User 类的 name 属性。
- 批量插入语句中使用了 `<foreach>` 标签来循环遍历 List 集合,并将每个元素插入到数据库中。
- 在 Java 代码中调用批量插入语句时,需要通过 sqlSession.getMapper() 方法获取对应的 Mapper 接口实例,并调用其中的方法来执行批量插入操作。注意要手动提交事务,否则数据不会写入到数据库中。