mybatisはsqlSessionFactoryを使用して一括操作を実現

6377 ワード

sqlSessionFactoryは、一括コミットされたjavaを実装しますが、影響を受ける数を返すことはできません.
 1 public int updateBatch(List list){
 2         if(list ==null || list.size() <= 0){
 3             return -1;
 4         }
 5         SqlSessionFactory sqlSessionFactory = SpringContextUtil.getBean("sqlSessionFactory");
 6         SqlSession sqlSession = null;
 7         try {
 8             sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
 9             Mapper mapper = sqlSession.getMapper(Mapper.class);
10             int batchCount = 1000;//    ,         
11             for (int index = 0; index < list.size(); index++) {
12                 Object obj = list.get(index);
13                 mapper.updateInfo(obj);
14                 if(index != 0 && index%batchCount == 0){
15                     sqlSession.commit();
16                 }                    
17             }
18             sqlSession.commit();
19             return 0;
20         }catch (Exception e){
21             sqlSession.rollback();
22             return -2;
23         }finally {
24             if(sqlSession != null){
25                 sqlSession.close();
26             }
27         }
28         
29 }
@Component
public class SpringContextUtil implements ApplicationContextAware{

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringContextUtil.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext(){
        return applicationContext;
    }

    public static Object getBean(Class T){
        try {
            return applicationContext.getBean(T);
        }catch (BeansException e){
            return null;
        }
    }

    public static Object getBean(String name){
        try {
            return applicationContext.getBean(name);
        }catch (BeansException e){
            return null;
        }
    }
}

 
転載先:https://www.cnblogs.com/lgjava/p/11263035.html