Mybatis 批量操作
批量操作
- 我們可以給openSession 方法傳入ExecutorType.BATCH 類型的參數
ExecutorType是枚舉類型:
- ExecutorType.SIMPLE:
這個執行器類型不做特殊的事情(這是默認裝配
的)。它爲每個語句的執行創建一個新的預處理語句 - ExecutorType.REUSE
這個執行器類型會複用預處理語句 - ExecutorType.BATCH
這個執行器會批量執行所有更新語句
示例:
2. 批量操作(預編譯sql一次–>設置參數10000次–>執行一次)
而非批量操作(預編譯sql10000次–>設置參數10000次–>執行10000次)
3. 批量操作是在session.commit()以後才發送sql語句給數據庫進行執行的
4. 如果我們想讓其提前執行,以方便後續可能的查詢操作
獲取數據,我們可以使用sqlSession.flushStatements()方 法
,讓其直接沖刷到數據庫進行執行。
與Spring整合後的批量操作
在全局配置文件中配置一個能用來批量執行sql的SqlSession
需要用到批量操作的時候,我們可以注入配置的這個批量
SqlSession。通過他獲取到mapper映射器進行操作。
EmployeeService文件的內容哦
@Service
public class EmployeeService {
@Autowired
private EmployeeMapper employeeMapper;
@Autowired
private SqlSession sqlSession;
public List<Employee> getEmps(){
//
//EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
return employeeMapper.getEmps();
}
}