posts - 431,  comments - 344,  trackbacks - 0

          Database

          import Java.sql.Connection;

          import Java.sql.ResultSet;

          import Java.sql.Statement;

          import Java.sql.SQLException;

          import javax.naming.Context;

          import javax.naming.InitialContext;

          import javax.sql.DataSource;

           

          public class Database

          {

          private Connection m_conn=null;

          private Statement m_stmt=null;

          private boolean isAutoCommit;

           

          public Database() throws Exception

          {

              try

              {

               Context initCtx=new InitialContext();

               Context envCtx=(Context)initCtx.lookup(“java:comp/env”);

               DataSource ds=(DataSource)envCtx.lookup(“jdbc/SqlServer”);

                m_conn=ds.getConnection();

                initCtx.close();

                envCtx.close();

          }

          catch(Exception ex)

          {

                 ex..printStackTrace();

                 System.out.println(“Create Connection Error!”);

                 throw ex;

          }

          }

           

          public void close()  throws SQLException

          {

               try

               {

                     if(m_stmt !=null) m_stmt.close();

                     if(m_conn !=null) m_conn.close();

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println(“Close Connection Error!”);

               throw ex;

          }

          }

           

          public ResultSet executeQuery1(String sql) throws SQLException

          {

                 try

          {

              m_stmt=m_conn.CreateStatement();

              return m_stmt.executeQuery(sql);

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println(“Execute SQL:’”+sql+”’ Error!’”);

               System.out.println(ex.toString());

               System.out.println(ex.getMessage());

               throw ex;

          }

          }

           

          public ResultSet executeQuery2(String sql) throws SQLException

          {

                  try

          {

              m_stmt=m_conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

          ResultSet.CONCUR_READ_ONLY);

                              return m_stmt..executeQuery(sql);

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println(“Execute SQL:’”+sql+”’ Error!’”);

               System.out.println(ex.toString());

               System.out.println(ex.getMessage());

               throw ex;

          }

          }

           

          public int executeUpdate(String sql) throws SQLException

          {

                try

          {

                Statement stmt=m_conn.createStatment();

                int rt=stmt.executeUpdate(sql);

                stmt.close();

                return rt;

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println(“Execute SQL:’”+sql+”’ Error!’”);

               System.out.println(ex.toString());

               System.out.println(ex.getMessage());

               throw ex;

          }

          }

          // 開始新事務

          public void beginTrans() throws SQLException    

          {

                 try

          {

               isAutoCommit=m_conn.getAutoCommit(); // 獲得當前自動提交狀態

               m_conn.setAutoCommit(false);// 禁止自動提交

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println("BeginTrans Error!");

               throw ex;

          }

          }

          // 保存任何更改并結束當前事務。它也可能啟動新事務

          public void commitTrans() throws SQLException 

          commit() 提交從上一次提交 / 回滾操作后的更改,使之成為永久的更改,并釋放 Connection 當前保持的任何數據庫鎖。 只有當禁止自動提交時可以使用該方法。

          {

                 try

          {

                               m_conn.commit(); 

               m_conn.setAutoCommit(isAutoCommit);

          }

          catch(SQLException ex)

          {

               ex.printStackTrace();

               System.out.println("CommitTrans Error!");

               throw ex;

          }

          }

          // 取消當前事務中所作的任何更改并結束事務。它也可能啟動新事務。

          public void rollbackTrans() throws SQLException

          {

                 try

          {

               m_conn.rollback();

               m_conn.setAutoCommit(isAutoCommit);

          }

          catch(SQLException ex)

          {

                ex.printStackTrace();

               System.out.println("RollbackTrans Error!");

               throw ex;

          }

          }

          }

          posted on 2006-10-18 13:31 周銳 閱讀(858) 評論(0)  編輯  收藏 所屬分類: JavaSQL Server
          主站蜘蛛池模板: 贵阳市| 萨迦县| 壤塘县| 安阳市| 资中县| 白沙| 曲阜市| 介休市| 内乡县| 乌兰浩特市| 宿州市| 陆川县| 石屏县| 藁城市| 石柱| 同德县| 曲水县| 渭源县| 霍城县| 马尔康县| 罗平县| 钟山县| 鄂伦春自治旗| 林西县| 乃东县| 阿巴嘎旗| 宣武区| 广元市| 和顺县| 辉县市| 察隅县| 丰台区| 连平县| 怀来县| 嘉祥县| 诸城市| 垦利县| 颍上县| 阜新市| 温州市| 巴林左旗|