熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring 事務管理

2013-11-23 20:03:15  來源: Java開源技術 

  數據庫事務是由一系列的動作組成的這些動作被當作單獨的一個工作單位這些動作要麼被全部完整執行要麼全部不被執行事務管理是關系數據中一個重要的部分

  企業級應用使用事務來保證數據的完整性和一致性可以使用以下四個屬性來描述事務

   原子性

  一個事務應該被當作一個單獨的操作單位被執行也就是說這一連串的操作被執行成功或者不成功

   一致性

  這個代表數據庫參照完整性的一致性表中存在唯一主鍵

   隔離性

  在同一個時刻可能會有多個事務的進程操作同一個數據集每一個事務應該同其他的事務隔離防止數據被篡改

   持久性

  一旦事務被執行成功事務的結果需要被持久化並且不能因為系統錯誤導致數據丟失

  一個真正的關系型數據庫管理系統會為每一個會話保證上面四個特性可以通過以下SQL實現

  開始一個會話通過使用 Begin Transaction 命令

  通過批量執行多個 delete updateinsert 操作

  如果所有的操作被執行則執行commit操作否則執行rollback操作

  Spring 框架在事務管理的API之上提供了一個抽象層Spring的事務支持的目的在於通過添加事務的能力到POJO來提供一個可選的EJB事務

  Spring 提供編程式事務和聲明式兩種事務管理EJB需要一個應用服務器但是Spring事務管理能夠被實現而不需要應用服務器

  本地事務 和 分布式事務

  本地事務特定於單個事務型資源例如JDBC連接而分布式事務能夠在分布式系統中跨多個事務性資源

  編程式事務 和 聲明式事務

  編程式事務管理 通過編程的方式來管理事務這種提供了極度的靈活性但是很難去維護

  聲明式事務管理 你需要從業務代碼中分離事務管理你只能通過annotations 或者 基於XML的配置來管理事務

  事務隔離級別

  COMMITTED: 髒讀能夠被阻止不可重復讀和幻讀會發生

  UNCOMMITTED: 髒讀不可重復讀和幻讀會發生

  REPEATABLE_READ 髒讀和不可重復讀能被阻止幻讀會發生

  SERIALIZABLE 髒讀不可重復讀幻讀被阻止


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27873.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.