Jfinal 事物应用回滚

直接上代码,SpringMVC做的控制层

要保证账户余额的变动和财务的流水表在同一个事物内。

/**
	 * 加款或者减款
	 * @param model
	 * @return
	 */
	@RequestMapping("updateYuE")

	public String toEdit(Model model,HttpServletRequest request,final String id,final String userName,final String realName,final String operationType,final String money,final String operationNote) {
		//非空验证
		if(StringUtils.isEmpty(id)||StringUtils.isEmpty(userName)||StringUtils.isEmpty(operationType)||StringUtils.isEmpty(money)){
			return "/background/framework/failed";
		}
		
		final User attribute = (User) request.getSession().getAttribute("userSession");
		
		
		Db.tx(new IAtom() {
			 //在执行run的过程中,如果有异常将回滚,或者return false 将回滚
			@Override
			public boolean run() throws SQLException {

				//代理师账户加款减款的流水的日志表
				UseraFlow useraFlow= new UseraFlow();
				useraFlow.setOperator(attribute.getUserName());//获取当前后台登录用户名
				useraFlow.setOperationType(operationType);
				useraFlow.setOperationNote(operationNote);
				useraFlow.setMoney(money);
				useraFlow.setUseraId(id);//代理师id
				useraFlow.setUserName(userName);
				useraFlow.setRealName(realName);
				useraFlow.save();
				
			/*int a	=10/0;*///测试回滚
				
				
				if(operationType.equals("1")){//加款
					Db.update("UPDATE t_usera SET daiKuanYongJin = daiKuanYongJin + ? WHERE id = ? ",money,id);
				}else if(operationType.equals("0")){//减款
					Db.update("UPDATE t_usera SET daiKuanYongJin = daiKuanYongJin - ? WHERE id = ? ",money,id);
				}
				return true;
			}
		});
		
		
		
		
		
		return "redirect:toList.html";
		
	}
	



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值