jtsexamples.java

来自「100多M的J2EE培训内容」· Java 代码 · 共 328 行

JAVA
328
字号
package bible.jdbc;



import javax.transaction.UserTransaction;

import java.sql.*;

import javax.naming.*;

import java.util.*;

import weblogic.jndi.*;


/**
 * Class JTSExamples
 *
 *
 * @author
 * @version %I%, %G%
 */
public class JTSExamples {

  /**
   * Method getTransaction
   *
   *
   * @return
   *
   */
  public static UserTransaction getTransaction() {

    Context         ctx = null;
    Hashtable       env = new Hashtable();
    UserTransaction tx  = null;

    try {
      env.put(Context.INITIAL_CONTEXT_FACTORY,
              "weblogic.jndi.WLInitialContextFactory");
      env.put(Context.PROVIDER_URL, "t3://localhost:7001");
      env.put(Context.SECURITY_PRINCIPAL, "system");
      env.put(Context.SECURITY_CREDENTIALS, "password");

      ctx = new InitialContext(env);
      tx  = (UserTransaction) ctx.lookup("javax.transaction.UserTransaction");
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      return tx;
    }
  }

  /**
   * Method insertEmp
   *
   *
   * @param empNo
   * @param empName
   * @param empJob
   *
   * @throws SQLException
   *
   */
  public static void insertEmp(int empNo, String empName, String empJob)
    throws SQLException {

    Connection        myConnection = Examples.getJTSConnection("OraclePool");
    String            sql          =
      "INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES (?, ?, ?)";
    PreparedStatement myStatement  = myConnection.prepareStatement(sql);

    myStatement.setInt(1, empNo);
    myStatement.setString(2, empName);
    myStatement.setString(3, empJob);

    if (myStatement.executeUpdate() == 1) {
      System.out.println("Employee inserted.");
    } else {
      System.out.println("Employee not inserted.");
    }

    myStatement.close();
    myConnection.close();
  }

  /**
   * Method insertEmp
   *
   *
   * @param theConnection
   * @param empNo
   * @param empName
   * @param empJob
   *
   * @throws SQLException
   *
   */
  public static void insertEmp(
    Connection theConnection, int empNo, String empName, String empJob)
      throws SQLException {

    String            sql         =
      "INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES (?, ?, ?)";
    PreparedStatement myStatement = theConnection.prepareStatement(sql);

    myStatement.setInt(1, empNo);
    myStatement.setString(2, empName);
    myStatement.setString(3, empJob);

    if (myStatement.executeUpdate() == 1) {
      System.out.println("Employee inserted.");
    } else {
      System.out.println("Employee not inserted.");
    }

    myStatement.close();
  }

  /**
   * Method updateEmp
   *
   *
   * @param theConnection
   * @param empNo
   * @param newName
   *
   */
  public static void updateEmp(Connection theConnection, int empNo,
                               String newName) {

    String            sql         =
      "UPDATE EMP SET ENAME = ? WHERE EMPNO = ?";
    PreparedStatement myStatement = null;

    try {
      myStatement = theConnection.prepareStatement(sql);

      myStatement.setString(1, newName);
      myStatement.setInt(2, empNo);

      if (myStatement.executeUpdate() == 1) {
        System.out.println("Employee updated.");
      } else {
        System.out.println("Employee not updated.");
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        myStatement.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Method demoNormal
   *
   *
   * @param demoMode
   *
   */
  public static void demoNormal(String demoMode) {

    Connection      myConnection = null;
    UserTransaction tx           = null;
    Driver          myDriver     = null;

    try {
      tx = getTransaction();

      tx.begin();
      System.out.println("Beginning transaction...");

      myConnection = Examples.getPooledConnection("OraclePool", "");

      insertEmp(myConnection, 8000, "GILL", "ENGINEER");
      insertEmp(myConnection, 8001, "SCHNEIDER", "ENGINEER");
      insertEmp(myConnection, 8002, "TUCKER", "ENGINEER");
      insertEmp(myConnection, 8003, "WELLS", "MANAGER");
      insertEmp(myConnection, 8004, "ZUFFOLETTO", "WRITER");
      insertEmp(myConnection, 8005, "SEKANDER", "SALES");
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (demoMode.equals("commit")) {
          tx.commit();
          System.out.println("Committing transaction.");
        } else {
          tx.rollback();
          System.out.println("Rolling back transaction.");
        }

        myConnection.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Method demoJTS
   *
   *
   * @param demoMode
   *
   */
  public static void demoJTS(String demoMode) {

    Connection      myConnection = null;
    UserTransaction tx           = null;
    Driver          myDriver     = null;

    try {
      tx = getTransaction();

      tx.begin();
      System.out.println("Beginning JTS transaction...");

      myConnection = Examples.getJTSConnection("OraclePool");

      insertEmp(9000, "GILL", "ENGINEER");
      insertEmp(9001, "SCHNEIDER", "ENGINEER");
      insertEmp(9002, "TUCKER", "ENGINEER");
      insertEmp(9003, "WELLS", "MANAGER");
      insertEmp(9004, "ZUFFOLETTO", "WRITER");
      insertEmp(9005, "SEKANDER", "SALES");
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (demoMode.equals("commit")) {
          tx.commit();
          System.out.println("Committing transaction.");
        } else {
          tx.rollback();
          System.out.println("Rolling back transaction.");
        }

        myConnection.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Method demoXA
   *
   *
   */
  public static void demoXA() {

    javax.sql.DataSource ds1      = null;
    javax.sql.DataSource ds2      = null;
    Connection           conn1    = null;
    Connection           conn2    = null;
    InitialContext       ctx      = null;
    UserTransaction      tx       = null;
    Driver               myDriver = null;

    try {
      tx = getTransaction();

      tx.begin();

      ctx   = new InitialContext();
      ds1   = (javax.sql.DataSource) ctx.lookup("DenverTxDS");
      ds2   = (javax.sql.DataSource) ctx.lookup("SausalitoTxDS");
      conn1 = ds1.getConnection();
      conn2 = ds2.getConnection();

      insertEmp(conn1, 8000, "ZUFFOLETTO", "WRITER");
      insertEmp(conn1, 8001, "WELLS", "MANAGER");
      insertEmp(conn1, 8002, "TUCKER", "ENGINEER");
      insertEmp(conn1, 8003, "GILL", "ENGINEER");
      insertEmp(conn1, 8004, "SEKANDER", "SALES");
      insertEmp(conn1, 8005, "SCHNEIDER", "ENGINEER");
      insertEmp(conn2, 8000, "ZUFFOLETTO", "WRITER");
      insertEmp(conn2, 8001, "WELLS", "MANAGER");
      insertEmp(conn2, 8002, "TUCKER", "ENGINEER");
      insertEmp(conn2, 8003, "GILL", "ENGINEER");
      insertEmp(conn2, 8004, "SEKANDER", "SALES");
      insertEmp(conn2, 8005, "SCHNEIDER", "ENGINEER");
      tx.commit();
    } catch (Exception e) {
      try {
        tx.rollback();
        e.printStackTrace();
      } catch (Exception ex) {
        ex.printStackTrace();
      }
    } finally {
      try {
        conn1.close();
        conn2.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Method main
   *
   *
   * @param args
   *
   */
  public static void main(String args []) {

    // demoNormal("commit");
    // demoJTS("commit");
    demoXA();

    // Example1.getOracleData();
  }
}


/*--- Formatted in Bible Style on Thu, Sep 6, '01 ---*/


/*------ Formatted by Jindent 3.24 Gold 1.02 --- http://www.jindent.de ------*/

⌨️ 快捷键说明

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