Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          JavaBean中使用JDBC方式進行事務處理


          JavaBean中使用JDBC方式進行事務處理

          publicint delete(int sID) {
            dbc = new DataBaseConnection();
            Connection con = dbc.getConnection();
            try {
             con.setAutoCommit(false);// 更改JDBC事務的默認提交方式
             dbc.executeUpdate(
          "delete from xiao where ID=" + sID);
             dbc.executeUpdate(
          "delete from xiao_content where ID=" + sID);
             dbc.executeUpdate(
          "delete from xiao_affix where bylawid=" + sID);
             con.commit();
          //提交JDBC事務
             con.setAutoCommit(true);
          // 恢復JDBC事務的默認提交方式
             dbc.close();
             return 1;
            }
            catch (Exception exc) {
             con.rollBack();
          //回滾JDBC事務
             exc.printStackTrace();
             dbc.close();
             return -1;
            }
          }

          ????在數據庫操作中,一項事務是指由一條或多條對數據庫更新的sql語句所組成的一個不可分割的工作單元。只有當事務中的所有操作都正常完成了,整個事務才能被提交到數據庫,如果有一項操作沒有完成,就必須撤消整個事務。


          例如在銀行的轉帳事務中,假定張三從自己的帳號上把1000元轉到李四的帳號上,相關的sql語句如下:

          update account set monery=monery-1000 where name='zhangsan'

          update account set monery=monery+1000 where name='lisi'

          這個兩條語句必須作為一個完成的事務來處理。只有當兩條都成功執行了,才能提交這個事務。如果有一句失敗,整個事務必須撤消。


          在connection類中提供了3個控制事務的方法:

          (1) setAutoCommit(Boolean autoCommit):設置是否自動提交事務;

          (2) commit();提交事務;

          (3) rollback();撤消事務;

          在jdbc api中,默認的情況為自動提交事務,也就是說,每一條對數據庫的更新的sql語句代表一項事務,操作成功后,系統自動調用commit()來提交,否則將調用rollback()來撤消事務。

          在jdbc api中,可以通過調用setAutoCommit(false) 來禁止自動提交事務。然后就可以把多條更新數據庫的sql語句做為一個事務,在所有操作完成之后,調用commit()來進行整體提交。倘若其中一項sql操作失敗,就不會執行commit()方法,而是產生相應的sqlexception,此時就可以捕獲異常代碼塊中調用rollback()方法撤消事務。

          posted on 2006-04-26 16:28 都市淘沙者 閱讀(645) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

          主站蜘蛛池模板: 东辽县| 泸定县| 寿宁县| 藁城市| 泰兴市| 科尔| 通渭县| 巩留县| 镶黄旗| 新野县| 龙川县| 小金县| 沁水县| 大安市| 宿迁市| 紫云| 呼和浩特市| 获嘉县| 合山市| 汕尾市| 阳江市| 土默特左旗| 长阳| 郑州市| 汝州市| 柘荣县| 青龙| 澄城县| 资源县| 额济纳旗| 泸溪县| 文安县| 平远县| 台南市| 含山县| 琼海市| 泸水县| 顺义区| 唐山市| 扶余县| 辽宁省|