zoukankan      html  css  js  c++  java
  • jdbc转账事务案例 阿善没用

    package com.itheima.demo01_jdbc_transaction;

    import com.itheima.utils.JDBCUtils;

    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.Statement;

    /*
    案例: 演示JDBC的事务操作之 模拟转账

    版本2: 模拟转账, 通过事务实现. 掌握
    */
    public class Demo02 {
    public static void main(String[] args) {
    Connection conn = null;
    Statement stat = null;
    try {
    //1. 获取连接对象.
    conn = JDBCUtils.getConnection();
    //2. 获取可以执行SQL语句的对象.
    stat = conn.createStatement();
    //3. 执行SQL语句, 获取结果集.
    String sql1 = "UPDATE account SET money = money - 1000 WHERE aid = 1;";
    String sql2 = "UPDATE account SET money = money + 1000 WHERE aid = 2;";

    //开启事务.
    //关闭事务的自动提交功能 = 开启了我们自己的事务.
    conn.setAutoCommit(false);

    int num1 = stat.executeUpdate(sql1); //扣钱
    //System.out.println(1 / 0);
    int num2 = stat.executeUpdate(sql2); //加钱

    //4. 操作结果集.
    if (num1 == 1 && num2 == 1) {
    //提交事务
    conn.commit();
    System.out.println("转账成功!");
    }
    } catch (Exception e) {
    //e.printStackTrace();
    //事务回滚
    try {
    conn.rollback();
    } catch (SQLException e1) {
    e1.printStackTrace();
    }
    System.out.println("转账失败");
    } finally {
    //5. 释放资源.
    JDBCUtils.release(conn, stat, null);
    }
    }
    }

  • 相关阅读:
    SQLyog远程连接Linux服务器错误2003解决
    Linux/UNIX系统编程手册 练习3.8
    概括
    Linux 命令
    句柄类
    带有C风格的 CLib库
    Linux 命令
    C++ 编程思想 第三章 3-2
    一.创建型模式 Prototype 模式
    一.创建型模式 Builder
  • 原文地址:https://www.cnblogs.com/shan13936/p/13904434.html
Copyright © 2011-2022 走看看