⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transtest.java

📁 < ProJavaProgrammingSecondEdition> 书中例程源码
💻 JAVA
字号:
import java.sql.*;

public class TransTest {

  protected String url = "jdbc:odbc:banktest";
  protected String userid = "bspell";
  protected String password = "brett";

  public void transferFunds(float transferAmount, int accountNumber,
      String fromTable, String toTable) throws SQLException,
      InvalidTransferException {
    Statement stmt = null;
    ResultSet rset = null;
    Connection conn = DriverManager.getConnection(url, userid,
        password);
    conn.setAutoCommit(false);
    try {
      stmt = conn.createStatement();
      rset = stmt.executeQuery("SELECT BALANCE FROM " + fromTable +
          " WHERE ACCOUNTID = " + accountNumber);
      rset.next();
      float fromBalance = rset.getFloat(1);
      if (fromBalance < transferAmount) {
        throw new InvalidTransferException("Insufficient funds available");
      }
      rset.close();
      rset = stmt.executeQuery("SELECT BALANCE FROM " + toTable +
          " WHERE ACCOUNTID = " + accountNumber);
      rset.next();
      float toBalance = rset.getFloat(1);
      fromBalance -= transferAmount;
      toBalance += transferAmount;
      stmt.executeUpdate("UPDATE " + fromTable + " SET BALANCE = " +
          fromBalance + " WHERE ACCOUNTID = " + accountNumber);
      stmt.executeUpdate("UPDATE " + toTable + " SET BALANCE = " +
          toBalance + " WHERE ACCOUNTID = " + accountNumber);
      conn.commit();
    } catch (SQLException sqle) {
      conn.rollback();
      throw sqle;
    } finally {
      if (rset != null) rset.close();
      if (stmt != null) stmt.close();
      conn.close();
    }
  }

  class InvalidTransferException extends Exception {

    public InvalidTransferException(String message) {
      super(message);
    }

  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -