JDBC之事务的控制

xiaoxiao2021-02-28  38

Connection的方法实现事务的控制:

关闭自动提交:setAutoCommit(false)回滚状态:rollback()手动提交:commit /** * 产看库存, * * @param goods * @param userid * @param accounts * @return */ public String reduceGoods(List<GoodsCarPo> goods, String userid, String accounts) { String result = "false"; Connection con = C3P0.connection(); String sql = "{call reduceGoods(?,?,?)}"; CallableStatement prs = null; try { /*关闭自动提交*/ con.setAutoCommit(false); for (int i = 0; i < goods.size(); i++) { prs = con.prepareCall(sql); prs.setString(1, goods.get(i).getGoodsid()); prs.setString(2, goods.get(i).getGoodsnumber()); prs.registerOutParameter(3, java.sql.Types.INTEGER); prs.execute(); if (prs.getInt(3) == 1) { /*返回值为1,回滚状态*/ con.rollback(); return goods.get(i).getGoodsname() + "无货"; } } if (account(userid, accounts).equals("true")) { /*手动提交数据*/ con.commit(); } return account(userid, accounts); } catch (SQLException e) { e.printStackTrace(); } finally { C3P0.close(prs, con); } return result; }

转载请注明原文地址: https://www.6miu.com/read-2624578.html

最新回复(0)