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

溫馨提示×

溫馨提示×

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

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

java事務的類型有哪些及怎么使用

發布時間:2022-06-01 16:57:37 來源:億速云 閱讀:302 作者:iii 欄目:大數據

這篇文章主要介紹“java事務的類型有哪些及怎么使用”,在日常操作中,相信很多人在java事務的類型有哪些及怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java事務的類型有哪些及怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.JDBC事務

 Connection 對象控制,JDBC 的 Connection 接口提供了兩種事務模式:自動提交、手工提交。

 public void setAutoCommit(boolean)
 public boolean getAutoCommit()
 public void commit()
 public void rollback()

JDBC 為使用 Java 進行數據庫的事務操作提供了最基本的支持。可以將多個 SQL 語句放到同一個事務中,保證其 ACID 特性。

涉及到多數據庫的操作或者分布式場景,JDBC事務就無能為力了。

2.JTA(Java Transaction API)事務

JTA是一種高層的,與實現無關的,與協議無關的API,應用程序和應用服務器可以使用JTA來訪問事務。JTA允許應用程序執行分布式事務處理--在兩個或多個網絡計算機資源上訪問并且更新數據,這些數據可以分布在多個數據庫上。JDBC驅動程序的JTA支持極大地增強了數據訪問能力。

public void JtaTransfer() { 
        javax.transaction.UserTransaction tx = null;
        java.sql.Connection conn = null;
         try{ 
             tx = (javax.transaction.UserTransaction) context.lookup("java:comp/UserTransaction");  //取得JTA事務,本例中是由Jboss容器管理
             javax.sql.DataSource ds = (javax.sql.DataSource) context.lookup("java:/XAOracleDS");  //取得數據庫連接池,必須有支持XA的數據庫、驅動程序  
             tx.begin();
            conn = ds.getConnection();
             // 將自動提交設置為 false,
             //若設置為 true 則數據庫將會把每一次數據更新認定為一個事務并自動提交
             conn.setAutoCommit(false);
             stmt = conn.createStatement(); 
             // 將 A 賬戶中的金額減少 500 
             stmt.execute("\
             update t_account set amount = amount - 500 where account_id = 'A'");
             // 將 B 賬戶中的金額增加 500 
             stmt.execute("\
             update t_account set amount = amount + 500 where account_id = 'B'");
             // 提交事務
             tx.commit();
             // 事務提交:轉賬的兩步操作同時成功
         } catch(SQLException sqle){            
             try{ 
                 // 發生異常,回滾在本事務中的操做
              tx.rollback();
                 // 事務回滾:轉賬的兩步操作完全撤銷
                 stmt.close(); 
                 conn.close(); 
             }catch(Exception ignore){ 
             } 
             sqle.printStackTrace(); 
         } 
     }

3.容器事務

容器事務主要是J2EE應用服務器提供的,容器事務大多是基于JTA完成,這是一個基于JNDI的,相當復雜的API實現。

到此,關于“java事務的類型有哪些及怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

康马县| 安福县| 当阳市| 长治县| 西平县| 奉新县| 朝阳区| 上林县| 普陀区| 云安县| 惠来县| 天水市| 确山县| 崇文区| 鄂托克旗| 平顶山市| 乃东县| 施秉县| 印江| 城固县| 二连浩特市| 堆龙德庆县| 宿松县| 应城市| 文成县| 万盛区| 胶州市| 鹤壁市| 西丰县| 绿春县| 兴安县| 桃园县| 长垣县| 巍山| 佛冈县| 莱阳市| 贵阳市| 浙江省| 黑水县| 屏东市| 清流县|