线程池的事务

AOP

SQLSession

// 获取sqlSession
SqlSession sqlSession = ApplicationContextUtil.getBean(SqlSessionTemplate.class).getSqlSessionFactory().openSession();
// 建立连接
Connection connection = sqlSession.getConnection();
// 自动提交
connection.setAutoCommit(false);
// 从sqlSession中获取需要执行的mapper,这样他们会使用sqlSession这次连接中的事务
sqlSession.getMapper(XxxMapper.class)

线程池

// 子线程中是否有异常标识,使用atomic保本一致性
AtomicBoolean isError = new AtomicBoolean(false);
Future submit = ThreadPoolTaskExecutor.submit(() -> {
					// 执行状态标识
                    Boolean executorSuccess = Boolean.FALSE;
                    // 都没有出错才可以执行
                    if (!isError.get()){
                    	// SQL执行放回执行是否成功状态
                    }
                    if (!executorSuccess){
                        isError.set(true);
                    }
                    return executorSuccess;
                });

// 等级线程执行结束
objectFuture.get();
 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(知识集,线程池事务)