반응형
대용량 데이터 insert, update 진행 시 ExecutorType.BATCH옵션을 사용하면
업로드 시간을 좀 더 단축 시킬 수 있다.
// DI SqlSessionFactory 주입
@Autowired private SqlSessionFactory sqlSessionFactory;
---생략---
public boolean dataUpload(VoTestInfo voTestInfo){
boolean result = true;
try {
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
sqlSession.insert("xmlNamespace.queryId", voTestInfo);
} catch(IOException e){
result = false;
sqlSession.rollback();
e.printStackTrace();
} finally {
sqlSession.close();
}
} catch (Exception e) {
e.printStackTrace();
sqlSession.rollback();
result = false;
} finally {
sqlSession.flushStatements();
sqlSession.close();
}
return result;
}
16번라인의 sqlSession.insert("xmlNamespace.queryId", voTestInfo); 에서
첫번째 인자값은 실행될 쿼리가 있는 xml의 namespace명 + 쿼리ID
두번째 인자값은 파라미터
추가로 Mybatis ForEach를 사용한다면 더 단축이 가능하다.
반응형
'Back > Mybatis' 카테고리의 다른 글
대용량 데이터 조회 시 ResultHandler(RowHandler) (1) | 2020.02.19 |
---|---|
Mybatis foreach에서 collection Map으로 가져오는 방법 (0) | 2019.12.04 |
부적합한 열 유형: 1111(Mybatis) (0) | 2019.09.17 |