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/開源資料

          主站蜘蛛池模板: 安乡县| 西吉县| 黎平县| 台安县| 忻州市| 兴城市| 繁峙县| 彭泽县| 丽江市| 龙游县| 兴海县| 南投市| 云霄县| 弋阳县| 嘉鱼县| 伊川县| 万州区| 英德市| 汕头市| 舒城县| 桦甸市| 科技| 金阳县| 琼海市| 咸丰县| 黄浦区| 惠安县| 苗栗县| 眉山市| 南汇区| 上思县| 托克托县| 察隅县| 临安市| 广东省| 揭西县| 监利县| 三台县| 丹寨县| 湘阴县| 宁明县|