ssm+sqlSessionTemplete执行器批量更新删除添加(效率高)

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);
    }

你可能感兴趣的:(ssm+sqlSessionTemplete执行器批量更新删除添加(效率高))