- Spring事务管理
- 编程式事务管理
- 声明式事务管理
本章节基于 SpringBoot讲解 Spring的事务管理,使用的事务管理器是 org.springframework.jdbc.datasource.DataSourceTransactionManager Spring事务管理 编程式事务管理
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @Service public class UserServiceImpl extends ServiceImpl声明式事务管理implements UserService { @Autowired private UserMapper userMapper; @Autowired private DataSourceTransactionManager dataSourceTransactionManager; @Autowired private TransactionDefinition transactionDefinition; @Override public void saveUserByBCS() { TransactionStatus transaction = dataSourceTransactionManager.getTransaction(transactionDefinition); try { User user1 = new User("景天",16,"永安当","18253777428","320677188993166542",new Date()); userMapper.insert(user1); User user2 = new User("唐雪见",15,"唐家","18253777426","320677188993166540",new Date()); userMapper.insert(user2); int i = 1/0; dataSourceTransactionManager.commit(transaction); System.out.println("========事务提交!========"); } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transaction); System.out.println("========事务回滚!========"); } } }
@Transactional(rollbackFor = Exception.class)
@Override
public void saveUserBySMS() {
User user1 = new User("萧炎",16,"斗气大陆萧家","18253777411","320677188993166556",new Date());
userMapper.insert(user1);
User user2 = new User("古薰儿",14,"斗气大陆古族","18253777414","320677188993166557",new Date());
userMapper.insert(user2);
int i = 1/0;
}



