JTSExamples.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:8k
源码类别:

Java编程

开发平台:

Java

  1. package bible.jdbc;
  2. import javax.transaction.UserTransaction;
  3. import java.sql.*;
  4. import javax.naming.*;
  5. import java.util.*;
  6. import weblogic.jndi.*;
  7. /**
  8.  * Class JTSExamples
  9.  *
  10.  *
  11.  * @author
  12.  * @version %I%, %G%
  13.  */
  14. public class JTSExamples {
  15.   /**
  16.    * Method getTransaction
  17.    *
  18.    *
  19.    * @return
  20.    *
  21.    */
  22.   public static UserTransaction getTransaction() {
  23.     Context         ctx = null;
  24.     Hashtable       env = new Hashtable();
  25.     UserTransaction tx  = null;
  26.     try {
  27.       env.put(Context.INITIAL_CONTEXT_FACTORY,
  28.               "weblogic.jndi.WLInitialContextFactory");
  29.       env.put(Context.PROVIDER_URL, "t3://localhost:7001");
  30.       env.put(Context.SECURITY_PRINCIPAL, "system");
  31.       env.put(Context.SECURITY_CREDENTIALS, "password");
  32.       ctx = new InitialContext(env);
  33.       tx  = (UserTransaction) ctx.lookup("javax.transaction.UserTransaction");
  34.     } catch (Exception e) {
  35.       e.printStackTrace();
  36.     } finally {
  37.       return tx;
  38.     }
  39.   }
  40.   /**
  41.    * Method insertEmp
  42.    *
  43.    *
  44.    * @param empNo
  45.    * @param empName
  46.    * @param empJob
  47.    *
  48.    * @throws SQLException
  49.    *
  50.    */
  51.   public static void insertEmp(int empNo, String empName, String empJob)
  52.     throws SQLException {
  53.     Connection        myConnection = Examples.getJTSConnection("OraclePool");
  54.     String            sql          =
  55.       "INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES (?, ?, ?)";
  56.     PreparedStatement myStatement  = myConnection.prepareStatement(sql);
  57.     myStatement.setInt(1, empNo);
  58.     myStatement.setString(2, empName);
  59.     myStatement.setString(3, empJob);
  60.     if (myStatement.executeUpdate() == 1) {
  61.       System.out.println("Employee inserted.");
  62.     } else {
  63.       System.out.println("Employee not inserted.");
  64.     }
  65.     myStatement.close();
  66.     myConnection.close();
  67.   }
  68.   /**
  69.    * Method insertEmp
  70.    *
  71.    *
  72.    * @param theConnection
  73.    * @param empNo
  74.    * @param empName
  75.    * @param empJob
  76.    *
  77.    * @throws SQLException
  78.    *
  79.    */
  80.   public static void insertEmp(
  81.     Connection theConnection, int empNo, String empName, String empJob)
  82.       throws SQLException {
  83.     String            sql         =
  84.       "INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES (?, ?, ?)";
  85.     PreparedStatement myStatement = theConnection.prepareStatement(sql);
  86.     myStatement.setInt(1, empNo);
  87.     myStatement.setString(2, empName);
  88.     myStatement.setString(3, empJob);
  89.     if (myStatement.executeUpdate() == 1) {
  90.       System.out.println("Employee inserted.");
  91.     } else {
  92.       System.out.println("Employee not inserted.");
  93.     }
  94.     myStatement.close();
  95.   }
  96.   /**
  97.    * Method updateEmp
  98.    *
  99.    *
  100.    * @param theConnection
  101.    * @param empNo
  102.    * @param newName
  103.    *
  104.    */
  105.   public static void updateEmp(Connection theConnection, int empNo,
  106.                                String newName) {
  107.     String            sql         =
  108.       "UPDATE EMP SET ENAME = ? WHERE EMPNO = ?";
  109.     PreparedStatement myStatement = null;
  110.     try {
  111.       myStatement = theConnection.prepareStatement(sql);
  112.       myStatement.setString(1, newName);
  113.       myStatement.setInt(2, empNo);
  114.       if (myStatement.executeUpdate() == 1) {
  115.         System.out.println("Employee updated.");
  116.       } else {
  117.         System.out.println("Employee not updated.");
  118.       }
  119.     } catch (Exception e) {
  120.       e.printStackTrace();
  121.     } finally {
  122.       try {
  123.         myStatement.close();
  124.       } catch (Exception e) {
  125.         e.printStackTrace();
  126.       }
  127.     }
  128.   }
  129.   /**
  130.    * Method demoNormal
  131.    *
  132.    *
  133.    * @param demoMode
  134.    *
  135.    */
  136.   public static void demoNormal(String demoMode) {
  137.     Connection      myConnection = null;
  138.     UserTransaction tx           = null;
  139.     Driver          myDriver     = null;
  140.     try {
  141.       tx = getTransaction();
  142.       tx.begin();
  143.       System.out.println("Beginning transaction...");
  144.       myConnection = Examples.getPooledConnection("OraclePool", "");
  145.       insertEmp(myConnection, 8000, "GILL", "ENGINEER");
  146.       insertEmp(myConnection, 8001, "SCHNEIDER", "ENGINEER");
  147.       insertEmp(myConnection, 8002, "TUCKER", "ENGINEER");
  148.       insertEmp(myConnection, 8003, "WELLS", "MANAGER");
  149.       insertEmp(myConnection, 8004, "ZUFFOLETTO", "WRITER");
  150.       insertEmp(myConnection, 8005, "SEKANDER", "SALES");
  151.     } catch (Exception e) {
  152.       e.printStackTrace();
  153.     } finally {
  154.       try {
  155.         if (demoMode.equals("commit")) {
  156.           tx.commit();
  157.           System.out.println("Committing transaction.");
  158.         } else {
  159.           tx.rollback();
  160.           System.out.println("Rolling back transaction.");
  161.         }
  162.         myConnection.close();
  163.       } catch (Exception e) {
  164.         e.printStackTrace();
  165.       }
  166.     }
  167.   }
  168.   /**
  169.    * Method demoJTS
  170.    *
  171.    *
  172.    * @param demoMode
  173.    *
  174.    */
  175.   public static void demoJTS(String demoMode) {
  176.     Connection      myConnection = null;
  177.     UserTransaction tx           = null;
  178.     Driver          myDriver     = null;
  179.     try {
  180.       tx = getTransaction();
  181.       tx.begin();
  182.       System.out.println("Beginning JTS transaction...");
  183.       myConnection = Examples.getJTSConnection("OraclePool");
  184.       insertEmp(9000, "GILL", "ENGINEER");
  185.       insertEmp(9001, "SCHNEIDER", "ENGINEER");
  186.       insertEmp(9002, "TUCKER", "ENGINEER");
  187.       insertEmp(9003, "WELLS", "MANAGER");
  188.       insertEmp(9004, "ZUFFOLETTO", "WRITER");
  189.       insertEmp(9005, "SEKANDER", "SALES");
  190.     } catch (Exception e) {
  191.       e.printStackTrace();
  192.     } finally {
  193.       try {
  194.         if (demoMode.equals("commit")) {
  195.           tx.commit();
  196.           System.out.println("Committing transaction.");
  197.         } else {
  198.           tx.rollback();
  199.           System.out.println("Rolling back transaction.");
  200.         }
  201.         myConnection.close();
  202.       } catch (Exception e) {
  203.         e.printStackTrace();
  204.       }
  205.     }
  206.   }
  207.   /**
  208.    * Method demoXA
  209.    *
  210.    *
  211.    */
  212.   public static void demoXA() {
  213.     javax.sql.DataSource ds1      = null;
  214.     javax.sql.DataSource ds2      = null;
  215.     Connection           conn1    = null;
  216.     Connection           conn2    = null;
  217.     InitialContext       ctx      = null;
  218.     UserTransaction      tx       = null;
  219.     Driver               myDriver = null;
  220.     try {
  221.       tx = getTransaction();
  222.       tx.begin();
  223.       ctx   = new InitialContext();
  224.       ds1   = (javax.sql.DataSource) ctx.lookup("DenverTxDS");
  225.       ds2   = (javax.sql.DataSource) ctx.lookup("SausalitoTxDS");
  226.       conn1 = ds1.getConnection();
  227.       conn2 = ds2.getConnection();
  228.       insertEmp(conn1, 8000, "ZUFFOLETTO", "WRITER");
  229.       insertEmp(conn1, 8001, "WELLS", "MANAGER");
  230.       insertEmp(conn1, 8002, "TUCKER", "ENGINEER");
  231.       insertEmp(conn1, 8003, "GILL", "ENGINEER");
  232.       insertEmp(conn1, 8004, "SEKANDER", "SALES");
  233.       insertEmp(conn1, 8005, "SCHNEIDER", "ENGINEER");
  234.       insertEmp(conn2, 8000, "ZUFFOLETTO", "WRITER");
  235.       insertEmp(conn2, 8001, "WELLS", "MANAGER");
  236.       insertEmp(conn2, 8002, "TUCKER", "ENGINEER");
  237.       insertEmp(conn2, 8003, "GILL", "ENGINEER");
  238.       insertEmp(conn2, 8004, "SEKANDER", "SALES");
  239.       insertEmp(conn2, 8005, "SCHNEIDER", "ENGINEER");
  240.       tx.commit();
  241.     } catch (Exception e) {
  242.       try {
  243.         tx.rollback();
  244.         e.printStackTrace();
  245.       } catch (Exception ex) {
  246.         ex.printStackTrace();
  247.       }
  248.     } finally {
  249.       try {
  250.         conn1.close();
  251.         conn2.close();
  252.       } catch (Exception e) {
  253.         e.printStackTrace();
  254.       }
  255.     }
  256.   }
  257.   /**
  258.    * Method main
  259.    *
  260.    *
  261.    * @param args
  262.    *
  263.    */
  264.   public static void main(String args []) {
  265.     // demoNormal("commit");
  266.     // demoJTS("commit");
  267.     demoXA();
  268.     // Example1.getOracleData();
  269.   }
  270. }
  271. /*--- Formatted in Bible Style on Thu, Sep 6, '01 ---*/
  272. /*------ Formatted by Jindent 3.24 Gold 1.02 --- http://www.jindent.de ------*/