mysql数据库事务简单操作(转账)

package com.qfedu.a_druid;

import com.qfedu.util.JdbcUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

//事务操作的讲解
public class Demo3 {
    public static void main(String[] args) throws SQLException {
        Connection connection = JdbcUtil.getConnection();
        try {
            //1.开启事务
            connection.setAutoCommit(false);//把自动提交关闭
            //2.编写sql语句
            //money=money+?   等号右边的money是数据库原有的值
            String sql = "update bank_sys set money=money+? where name=?";

            //减钱   张三的账户减钱  200
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setObject(1, -200);
            preparedStatement.setObject(2, "张三");
            int i = preparedStatement.executeUpdate();

            //突然这个地方有异常了
           // int i2 =  1/0;//这个是异常代码
            //整体的所有sql语句都是在一个事务当中。这两个sql语句都在一个事务中
            //y一荣俱荣,一损俱损。只有你有哪一个sql语句没有执成功。那么其他sql语句也就不会成功。
            //一致性 加上事务以后要么同时成功,要么同时失败!!!事务更加安全些!!!
            //ssm 使用AOP进行事务的操作,是因为在配置文件中直接写事务,让咱们的代码更加健壮些!!!

            //增钱  李四的账户增加钱200
            preparedStatement.setObject(1, 200);
            preparedStatement.setObject(2, "李四");
            int i1 = preparedStatement.executeUpdate();
            //如果没有错误的话,就提交上面的执行的两次sql语句
            connection.commit();//事务的提交


        }catch (Exception e){
            //回滚
            connection.rollback();
        }finally {
            connection.setAutoCommit(true);
            connection.close();
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彼岸迷离

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值