SpringMVC 手动控制事务提交 【转】
1、配置文件 applicationContext.xml:
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource"/>
2、在需要加事务的方法上加上
DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx .getBean("txManager"); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务,这样会比较安全些。 TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态 try { //逻辑代码,可以写上你的逻辑处理代码 transactionManager.commit(status); } catch (Exception e) { transactionManager.rollback(status); }
这是在有 ApplicationContext 的情况下、
3.ApplicationContext 不存在的情况下
@Autowired private DataSourceTransactionManager txManager; DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务 TransactionStatus status = txManager.getTransaction(def); // 获得事务状态 try{ //逻辑代码,可以写上你的逻辑处理代码 txManager.commit(status); }catch(Exception e){ txManager.rollback(status); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步