1.spring通过配置文件配置SqlSessionTemplate重新构造一个
spring.xml
<bean id="SqlSessionTemplateBatch" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
<constructor-arg index="1" value="BATCH"></constructor-arg>
</bean>
@Resource(name = "SqlSessionTemplateBatch")
private SqlSessionTemplate sqlSessionTemplate;
代码中在使用这个sqlSessionTemplate
或者
2.代码中重新获得SqlSessionTemplate
service
注入一个带有batch执行器类型的SqlSessionTemplate
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
@Override
public int addUsers(List<User> users) {
SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);
UserDao mapper = sqlSession.getMapper(UserDao.class);
int count=0;
for(int i=0;i<users.size();i++){
mapper.addUser(users.get(i));
count ++;
}
sqlSession.commit();
return count;
}
test.java
@Test
public void test(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring.xml");
UserService bean = applicationContext.getBean(UserService.class);
List<User> list=new ArrayList<>();
for(int i=0;i<10;i++){
User user=new User();
user.setUserName(""+i);
user.setPassword(""+i);
user.setRealName(""+i);
list.add(user);
}
int i = bean.addUsers(list);
}