Jfinal 事物應用回滾
阿新 • • 發佈:2019-01-05
直接上程式碼,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"; }