java 手动事务_spring手动事务简单实现_太平洋学习网|一个最全的javaweb,js,css,html5,csdn,android,linux的学习网站。...

spring手动事务适合于报除了RuntimeException异常等自定义异常时使用,因为自定义异常如果没有继承RuntimeException运行异常的话,是不会事务回滚的,因此我们可以在返回自定义异常后用上我们的spring手动事务使其回滚数据,使用案例如下,springmvc项目中ServiceImpl实现类中的用法。public Map getList(){

Map resultMap = new HashMap();

xxxService.insert(数据1);

List list = xxxService.selectAll();

if(list > 0){

resultMap.put("result","数据已存在");

}else{

xxxService.insert(数据2);

}

return resultMap;

}

�resultMap�返回的异常是要让前台用户知道的自己插入数据到数据库时出现了什么问题,但是虽然报了自定义异常给了前台用户,数据1已经被插入mysql数据库了,因为是自定义异常,所以即使你在service层中实现了事务回滚,也是没有办法回滚的,这时我们就需要实现spring手动事务回滚功能,代码如下:public Map getList(){

Map resultMap = new HashMap();

xxxService.insert(数据1);

List list = xxxService.selectAll();

if(list > 0){

resultMap.put("result","数据已存在");

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

}else{

xxxService.insert(数据2);

}

return resultMap;

}

加入这一段代码的意思是:当数据存在时,前面插入的数据也要回滚:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

以上这段手动事务的代码是关键。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/35.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值