這篇文章主要介紹JavaBean中如何使用JDBC連接進(jìn)行事務(wù)處理,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司成立10余年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計、域名與空間、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗好、性價比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
在JavaBean數(shù)據(jù)庫操作中,一項事務(wù)是指由一條或多條對數(shù)據(jù)庫更新的SQL語句所組成的一個不可分割的工作單元。只有當(dāng)事務(wù)處理中的所有操作都正常完成了,整個事務(wù)才能被提交到數(shù)據(jù)庫,如果有一項操作沒有完成,就必須撤消整個事務(wù)。我們通過提交commit()或是回滾rollback()來結(jié)束事務(wù)處理的操作。關(guān)于事務(wù)操作的方法都位于接口java.sql.Connection中。
JavaBean在***次建立與數(shù)據(jù)庫的連接時,在缺省情況下,JDBC連接是在自動提交模式下的, JDBC API中,可以通過調(diào)用setAutoCommit(false) 來禁止自動提交事務(wù)。然后就可以把多條更新數(shù)據(jù)庫的SQL語句做為一個事務(wù)處理,在所有操作完成之后,調(diào)用commit()來進(jìn)行整體提交。倘若其中一項SQL操作失敗,就不會執(zhí)行commit()方法,而是產(chǎn)生相應(yīng)的sqlexception,此時就可以捕獲異常代碼塊中調(diào)用rollback()方法撤消事務(wù)。下面是一個例子;
比如:有兩張表,一個記錄用戶帳戶(useraccount),一個是系統(tǒng)帳(sysaccount),現(xiàn)在有一個用戶要向系統(tǒng)寄錢買東西,就要此行下面兩條語句:
String sql1 = "update useraccount set monery=monery-1000 where name='username'";
String sql2 = "update sysaccount set monery=monery+1000 where name='sysname'";
但如果***條執(zhí)行了而第二條語句執(zhí)行出錯了就會造成不良后果。這是就可以用手動提交的方式來防止這種事情的發(fā)生:主要代碼:
try{
.
.
.
conn=DriverManager.getConnection("..."); //鏈接數(shù)據(jù)庫
conn.setAutoCommit(false);//禁止自動提交事務(wù)
stmt = conn.Create....
String sql1 = "update useraccount set monery=monery-1000 where name='usename'";
String sql2 = "update sysaccount set monery=monery+1000 where name='sysname'";
stmt=conn.createStatement();
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
conn.commit(); //統(tǒng)一提交。
}catch(SQLException e){
conn.rollback(); //倘若其中一項sql操作失敗,就不會執(zhí)行commit()方法,
//而是產(chǎn)生相應(yīng)的sqlexception,此時就可以捕獲 異常代碼塊中調(diào)用rollback()方法撤消事務(wù)。e.printStackTrace();
}
finally{
if(stmt!=null){
stmt.close();
}
if(conn!=null){
stmt.close();
}
}
以上是“JavaBean中如何使用JDBC連接進(jìn)行事務(wù)處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!