mapper.xml Oracle数据批量入库
时间: 2024-03-23 15:36:27 浏览: 105
在 MyBatis 中,可以使用批量插入的方式将数据批量写入 Oracle 数据库。具体操作步骤如下:
1. 创建一个包含要插入的数据的 List 对象。
2. 在 Mapper.xml 文件中定义一个 insert 语句,使用 foreach 标签遍历 List 对象,并将数据插入到数据库中。
3. 在 Java 代码中调用 sqlSession 的 batch 方法,将数据批量插入到数据库中。
具体代码如下:
1. 创建一个包含要插入的数据的 List 对象:
```
List<Employee> employeeList = new ArrayList<Employee>();
employeeList.add(new Employee(1001, "John Smith", "Accounting", 5000));
employeeList.add(new Employee(1002, "Jane Doe", "Sales", 6000));
employeeList.add(new Employee(1003, "Bob Johnson", "Marketing", 7000));
```
2. 在 Mapper.xml 文件中定义一个 insert 语句,使用 foreach 标签遍历 List 对象,并将数据插入到数据库中:
```
<insert id="batchInsertEmployee" parameterType="java.util.List">
INSERT INTO EMPLOYEE (EMP_ID, EMP_NAME, DEPARTMENT, SALARY)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.empId}, #{item.empName}, #{item.department}, #{item.salary})
</foreach>
</insert>
```
3. 在 Java 代码中调用 sqlSession 的 batch 方法,将数据批量插入到数据库中:
```
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
employeeMapper.batchInsertEmployee(employeeList);
sqlSession.flushStatements();
sqlSession.commit();
sqlSession.close();
```
其中,ExecutorType.BATCH 表示使用批处理方式执行 SQL 语句,flushStatements() 方法将缓存中的 SQL 语句刷新到数据库中,commit() 方法提交事务,close() 方法关闭 SqlSession。
阅读全文