自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JDBC事務(wù)處理機制探秘

開發(fā) 后端
本文向您介紹JDBC事務(wù)處理機制,作者列舉了兩種JDBC事務(wù)處理機制,包括JavaBean中使用JDBC事務(wù)處理和SessionBean中的JTA事務(wù)。

Java中的事務(wù)處理

一般情況下,J2EE應(yīng)用服務(wù)器支持JDBC事務(wù)、JTA(Java Transaction API)事務(wù)、容器管理事務(wù)。一般情況下,***不要在程序中同時使用上述三種事務(wù)類型,比如在JTA事務(wù)中嵌套JDBC事務(wù)。第二方面,事務(wù)要在盡可能短的時間內(nèi)完成,不要在不同方法中實現(xiàn)事務(wù)的使用。下面我們列舉兩種JDBC事務(wù)處理方式。

1、JavaBean中使用JDBC事務(wù)處理

在JDBC中怎樣將多個SQL語句組合成一個事務(wù)呢?在JDBC中,打開一個連接對象Connection時,缺省是auto-commit模式,每個SQL語句都被當(dāng)作一個事務(wù),即每次執(zhí)行一個語句,都會自動的得到事務(wù)確認(rèn)。為了能將多個SQL語句組合成一個事務(wù),要將auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不調(diào)用commit()方法,SQL語句不會得到JDBC事務(wù)處理確認(rèn)。在最近一次commit()方法調(diào)用之后的所有SQL會在方法commit()調(diào)用時得到確認(rèn)。

  1. public int delete(int sID) {   
  2.  dbc = new DataBaseConnection();   
  3.  Connection con = dbc.getConnection();   
  4.  try {   
  5.   con.setAutoCommit(false);// 更改JDBC事務(wù)的默認(rèn)提交方式   
  6.   dbc.executeUpdate("delete from bylaw where ID=" + sID);   
  7.   dbc.executeUpdate("delete from bylaw _content where ID=" + sID);   
  8.   dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);   
  9.   con.commit();//提交JDBC事務(wù)   
  10.   con.setAutoCommit(true);// 恢復(fù)JDBC事務(wù)的默認(rèn)提交方式   
  11.   dbc.close();   
  12.   return 1;   
  13.  }   
  14.  catch (Exception exc) {   
  15.   con.rollBack();//回滾JDBC事務(wù)   
  16.   exc.printStackTrace();   
  17.   dbc.close();   
  18.   return -1;   
  19.  }   
  20. }  

2、SessionBean中的JTA事務(wù)

JTA 是事務(wù)服務(wù)的 J2EE 解決方案。本質(zhì)上,它是描述事務(wù)接口(比如 UserTransaction 接口,開發(fā)人員直接使用該接口或者通過 J2EE 容器使用該接口來確保業(yè)務(wù)邏輯能夠可靠地運行)的 J2EE 模型的一部分。JTA 具有的三個主要的接口分別是 UserTransaction 接口、TransactionManager 接口和 Transaction 接口。這些接口共享公共的事務(wù)操作,例如 commit() 和 rollback(), 但是也包含特殊的事務(wù)操作,例如 suspend(),resume() 和 enlist(),它們只出現(xiàn)在特定的接口上,以便在實現(xiàn)中允許一定程度的訪問控制。例如,UserTransaction 能夠執(zhí)行事務(wù)劃分和基本的事務(wù)操作,而 TransactionManager 能夠執(zhí)行上下文管理。

應(yīng)用程序可以調(diào)用UserTransaction.begin()方法開始一個事務(wù),該JDBC事務(wù)處理與應(yīng)用程序正在其中運行的當(dāng)前線程相關(guān)聯(lián)。底層的事務(wù)管理器實際處理線程與事務(wù)之間的關(guān)聯(lián)。UserTransaction.commit()方法終止與當(dāng)前線程關(guān)聯(lián)的事務(wù)。UserTransaction.rollback()方法將放棄與當(dāng)前線程關(guān)聯(lián)的當(dāng)前事務(wù)。

  1. public int delete(int sID) {   
  2.  DataBaseConnection dbc = null;   
  3.  dbc = new DataBaseConnection();   
  4.  dbc.getConnection();   
  5.  UserTransaction transaction = sessionContext.getUserTransaction();//獲得JTA事務(wù)   
  6.  try {   
  7.   transaction.begin(); //開始JTA事務(wù)   
  8.   dbc.executeUpdate("delete from bylaw where ID=" + sID);   
  9.   dbc.executeUpdate("delete from bylaw _content where ID=" + sID);   
  10.   dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);   
  11.   transaction.commit(); //提交JTA事務(wù)   
  12.   dbc.close();   
  13.   return 1;   
  14.  }   
  15.  catch (Exception exc) {   
  16.   try {   
  17.    transaction.rollback();//JTA事務(wù)回滾   
  18.   }   
  19.   catch (Exception ex) {   
  20.    //JTA事務(wù)回滾出錯處理   
  21.    ex.printStackTrace();   
  22.   }   
  23.   exc.printStackTrace();   
  24.   dbc.close();   
  25.   return -1;   
  26.  }   
  27. }  

 

【編輯推薦】

  1. 使用JDBC的五個精華功能
  2. Tomcat5+MySQL JDBC連接池配置
  3. 在Weblogic中實現(xiàn)JDBC的功能
  4. 詳解JDBC與Hibernate區(qū)別
  5. JDBC連接MySQL數(shù)據(jù)庫關(guān)鍵四步
  6. 詳解JDBC驅(qū)動的四種類型
責(zé)任編輯:佚名 來源: JavaEye
相關(guān)推薦

2009-07-15 17:41:55

iBATIS事務(wù)處理

2009-06-16 11:42:00

JDBC事務(wù)處理JavaBean

2011-05-18 08:34:45

javaJDBC

2009-06-12 14:47:27

JavaBeanJDBC鏈接事物處理

2011-04-27 15:55:16

2011-07-10 14:19:32

JavaBean

2009-09-14 19:55:03

LINQ事務(wù)處理

2010-01-04 13:06:50

ADO.NET事務(wù)

2014-01-22 13:37:53

2009-11-13 17:01:07

ADO.NET事務(wù)處理

2010-04-13 15:44:00

Oracle與SqlS

2023-08-22 09:58:22

數(shù)據(jù)分布式

2022-06-22 05:42:32

數(shù)據(jù)庫事務(wù)處理分析查詢

2017-04-10 13:30:47

Redis數(shù)據(jù)庫命令

2011-04-27 16:09:48

SQL ServerSSIS

2010-05-17 14:59:05

MySQL事務(wù)處理

2009-11-04 15:05:45

ADO.NET事務(wù)

2022-06-13 10:42:21

分布式事務(wù)數(shù)據(jù)庫

2009-04-15 17:03:15

OracleSQL Server事務(wù)處理

2011-03-15 10:22:42

SQL Server 聯(lián)機事務(wù)處理
點贊
收藏

51CTO技術(shù)棧公眾號