91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaBean中怎么利用JDBC實現事務處理

發布時間:2021-07-01 17:01:31 來源:億速云 閱讀:138 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關JavaBean中怎么利用JDBC實現事務處理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純 Java API 編寫數據庫應用程序,同時,JDBC也是個商標名。

Java數據庫操作中,一項事務是指由一條或多條對數據庫更新的sql語句所組成的一個不可分割的工作單元。只有當事務中的所有操作都正常完成了,整個事務才能被提交到數據庫,如果有一項操作沒有完成,就必須撤消整個事務。我們通過提交commit()或是回滾rollback()來結束事務的操作。關于事務操作的方法都位于接口java.sql.Connection中。

在***次建立與數據庫的連接時,在缺省情況下,連接是在自動提交模式下的, jdbc api中,可以通過調用setAutoCommit(false) 來禁止自動提交事務。然后就可以把多條更新數據庫的sql語句做為一個事務,在所有操作完成之后,調用commit()來進行整體提交。

倘若其中一項sql操作失敗,就不會執行commit()方法,而是產生相應的sqlexception,此時就可以捕獲異常代碼塊中調用rollback()方法撤消事務。下面是一個例子:

比如:有兩張表,一個記錄用戶帳戶(useraccount),一個是系統帳(sysaccount),現在有一個用戶要向系統寄錢買東西,就要此行下面兩條語句:

String sql1 = "update useraccount set monery=monery-1000 where name='username'";  String sql2 = "update sysaccount set monery=monery+1000 where name='sysname'";

但如果***條執行了而第二條語句執行出錯了就會造成不良后果。這是就可以用手動提交的方式來防止這種事情的發生:主要代碼:

try{  .  .  .  conn=DriverManager.getConnection("..."); //鏈接數據庫  conn.setAutoCommit(false);//禁止自動提交事務  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(); //統一提交。  }catch(SQLException e){  conn.rollback(); //倘若其中一項sql操作失敗,就不會執行commit()方法,而是產生相應的sqlexception,此時就可以捕獲 異常代碼塊中調用rollback()方法撤消事務。  e.printStackTrace();  }  finally{  if(stmt!=null){  stmt.close();  }  if(conn!=null){  stmt.close();  }  }

盡管JDBC在JAVA語言層面實現了統一,但不同數據庫仍舊有許多差異。為了更好地實現跨數據庫操作,于是誕生了Hibernate項目,Hibernate是對JDBC的再封裝,實現了對數據庫操作更寬泛的統一和更好的可移植性。

看完上述內容,你們對JavaBean中怎么利用JDBC實現事務處理有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

察隅县| 太保市| 宜都市| 铜陵市| 瓮安县| 红原县| 双鸭山市| 民和| 横山县| 乐安县| 紫金县| 高清| 婺源县| 上思县| 东乡族自治县| 岑溪市| 马公市| 荃湾区| 阿拉尔市| 满洲里市| 交城县| 南靖县| 巴彦淖尔市| 察雅县| 太白县| 平利县| 德昌县| 远安县| 资溪县| 阜平县| 佛山市| 五大连池市| 陆丰市| 临汾市| 策勒县| 上栗县| 青神县| 海门市| 梁平县| 巍山| 泰兴市|