中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

JavaBean如何利用JDBC實現事務處理

發布時間:2022-05-23 15:34:54 來源:億速云 閱讀:165 作者:iii 欄目:大數據

這篇文章主要介紹了JavaBean如何利用JDBC實現事務處理的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇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實現事務處理”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaBean如何利用JDBC實現事務處理”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

金湖县| 高唐县| 额尔古纳市| 中宁县| 沧源| 新疆| 鄂伦春自治旗| 新密市| 兴安县| 江西省| 铜鼓县| 方正县| 陕西省| 石城县| 南木林县| 潢川县| 吉木乃县| 宁阳县| 佛冈县| 唐海县| 龙海市| 揭西县| 叙永县| 稻城县| 定结县| 容城县| 乐亭县| 台湾省| 罗平县| 泸州市| 崇义县| 顺平县| 纳雍县| 株洲市| 东至县| 汝州市| 镶黄旗| 万盛区| 奉化市| 吉木萨尔县| 林州市|