首页 > 代码库 > JDBC值事务

JDBC值事务

事务的四大特性: 原子性, 一致性(比如说A给B转账,A转了之后B的账户增加了,两个都完成才叫一致性),隔离性(A给B转账,A给C转账,AB和AC并发是无关的),永久性(转账之后 不可能复原,就是说不做别的操作是不会还原的)

JDBC中的事务是默认开启的,所以手动的开启事务必须要先关闭默认的事务, conn.setAutoCommit(false)

建立

public String transaction(AccountInfo from, AccountInfo to, int account)    {        boolean res = false;        Connection con = DBUtil.getConnection();        try {                        con.setAutoCommit(false);//关闭默认的事务            from.setAccount(from.getAccount() - account);            res = update(from);//            String str = null;//            str.split("2");            to.setAccount(to.getAccount() + account);            res = update(to);            con.commit(); //提交            return "success";        } catch (Exception e) {            try {                con.rollback();// 回滚            } catch (SQLException e1) {                // TODO Auto-generated catch block                e1.printStackTrace();            }            return "failed";        }                            }

 

JDBC值事务