Jfinal 事物应用回滚

版权声明:转载请附带本文地址 https://blog.csdn.net/liuyifeng1920/article/details/71439321

直接上代码,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";
		
	}
	



猜你喜欢

转载自blog.csdn.net/liuyifeng1920/article/details/71439321