SqlSession : MyBatis에서 데이터베이스 작업을 수행하기 위해 사용되는 SqlSession 객체입니다. ExecutorType.BATCH 옵션을 사용하면 배치 모드로 세션이 활성화 됩니다. 배치 모드를 사용하면 다수의 SQL 문을 하나의 배치로 처리할 수 있어 성능 향상에 기여합니다. SqlSession을 통해 트랜잭션을 제어하기 때문에 @Transactional 어노테이션은 제외합니다.
sqlSession.flushStatements() : 배치 모드에서는 SQL 문이 바로 실행되지 않고, 일정 수량이 모일 때 한 번에 실행됩니다. 배치로 쌓인 SQL 문을 실제로 실행합니다.