posts - 28,  comments - 15,  trackbacks - 0

                   JDBC3.0(JDK4.0),引入了一個新特性Savepoint。我們知道,在JDBC2.0中的事務支持讓開發者可以控制對數據的并發訪問,從而保證數據的一致性。但有時候我們需要對事務多一點的控制,而不是在當前的事務中簡單地對每一個改變進行回滾。在 JDBC 3.0 下,我們可以通過 Savepoint 獲得這種控制。 Savepoint 接口允許您將事務分割為各個邏輯斷點,以控制有多少事務需要回滾。下圖將說明如何在事務中運用 Savepoint

          JDBC下使用Savepoint

          示例代碼:

          conn.setAutoCommit(false);
          // Set a conservative transaction isolation level.
          conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
          Statement stmt 
          = conn.createStatement();
          int rows = stmt.executeUpdate(    "INSERT INTO authors " + 
                          
          '(first_name, last_name) VALUES " +
                          '('Lewis''Carroll')");
          // Set a named savepoint.
          Savepoint svpt = conn.setSavepoint("NewAuthor");
          // 
          rows = stmt.executeUpdate(    "UPDATE authors set type = 'fiction' " +
                          
          "WHERE last_name = 'Carroll'");
          // 
          conn.rollback(svpt);
          // 
          // The author has been added, but not updated.
          conn.commit();

              

          示例結果就是,insert語句將被執行,update語句未執行,其被回滾了。

          Hibernate下使用Savepoint

          示例:

          Session s = sf.openSession();   
          Transaction tx 
          = s.beginTransaction();   
            
          User u1 
          = new User();u1.setId(1);u1.setName("u1");   
          s.save(u1);   
            
          Savepoint savepoint1 
          = s.connection().setSavepoint();   
          User u2 
          = new User();u2.setId(2);u2.setName("u2");   
          s.save(u2);   
           s.flush();

          s.connection().rollback(savepoint1);   
          //s.connection().releaseSavepoint(savepoint1);   
            
          tx.commit();  

           

          SpringSavepoint的支持

           

          posted on 2012-01-30 11:36 zhangxl 閱讀(2538) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆分類(17)

          隨筆檔案(28)

          文章分類(30)

          文章檔案(30)

          相冊

          收藏夾(2)

          hibernate

          java基礎

          mysql

          xml

          關注

          壓力測試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96549
          • 排名 - 601

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丰台区| 阜城县| 徐州市| 文成县| 永顺县| 大厂| 开阳县| 聊城市| 云龙县| 博客| 东阳市| 东源县| 乌兰县| 庆阳市| 八宿县| 合山市| 白朗县| 五华县| 邵阳市| 义马市| 道孚县| 武胜县| 潍坊市| 汾西县| 苗栗县| 德昌县| 灵璧县| 弥渡县| 潍坊市| 班戈县| 潜山县| 图木舒克市| 洱源县| 襄垣县| 邹平县| 秭归县| 涿鹿县| 福州市| 潜江市| 会昌县| 雅江县|