JDBC转账案例

事务能够控制是否和何时更改应用于数据库,将单个SQL语句或一组SQL语句视为一个逻辑单元,如果任何语句失败,则整个事务将失败

转账问题中转入和转出两个账户的余额变化就是典型的事务案例,一个账户余额增加的同时,另一个转出的账户的余额必然随之减少,这可以看作是一整个事务

第一步先连接数据库,开启事务以及准备好转账的SQL语句

//第一步:得到数据库连接
connection=JDBCUtills.getConnection();
//开启事务
connection.setAutoCommit(false);
//第三步:准备好转账的SQL语句
String sqll="update account set money=monet+? where id=?";

第二步加载SQL 编辑转账钱数以及转款人

//第四步:加载sql
            //zs转出100
            preparedStatement=connection.prepareStatement(sqll);
            preparedStatement.setDouble(1,-100);
            preparedStatement.setInt(2,1);
            preparedStatement.executeUpdate();
            //ls转入100
            preparedStatement=connection.prepareStatement(sqll);
            preparedStatement.setDouble(1,100);
            preparedStatement.setInt(2,2);
            preparedStatement.executeUpdate();

第三步 提交事务

}catch (Exception e){
            try{
                connection.rollback();
            }catch (SQLException ex){
                throw new RuntimeException(ex);
            }
        }finally {
            try{
                JDBCUtills.clo(null,preparedStatement,connection);
            }catch (SQLException e){
                throw new RuntimeException(e);
            }
        }

案例完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值