程式設計式事務:指的是由程式設計師編寫事務控制**,包含事務的提交與回滾等。
宣告式事務:事務控制**已經由spring寫好,程式設計師只需要宣告出哪些方法需要進行事務控制和如何進行事務控制。
宣告式事務都是針對serviceimpl類下的方法的
事務管理器是基於通知(advice)的
service介面
public inte***ce usersservice
serviceimpl類
public class usersserviceimpl implements usersservice
@override
public int insusers(users users)
}
配置
<?xml version="1.0" encoding="utf-8"?>
1 name="" 哪些方法需要有事務控制,支援萬用字元
2 readonly=「boolean」 是否是唯讀事務
如果為true,告訴資料庫此事務為唯讀事務,資料庫優化,會對效能有一定提公升,所以只要是查詢方法,建議使用;
如果為false,事務需要提交事務,當增刪改的時候使用。
3 propagation 控制事務傳播行為
當乙個具有事務控制的方法被另乙個有事務控制的方法呼叫後,需要如何管理事務(新建事務?在事務中執行?把事務掛起?報異常?)
3.1 required:(預設值)如果當前有事務,就在事務中進行,如果當前沒有事務,就新建乙個事務
3.2 supports: 如果當前有事務,就在事務中執行,如果當前沒有事務,就在非事務狀態下執行
3.3 mandatory: 必須在事務內部執行,如果當前有事務,就在事務中執行,如果沒有事務,報錯
3.4 requires_new: 必須在事務中執行,如果當前沒有事務,就新建事務,如果當前有事務,就將當前的事務掛起
3.5 not_supported: 必須在非事務下執行,如果當前沒有事務,正常執行,如果當前有事務,把事務掛起
3.6 never:必須在非事務狀態下執行,如果當前沒有事務,正常執行,如果有事務,報錯。
3.7 nested:必須在事務狀態下執行,如果有沒有事務,新建事務,如果當前有事務,建立乙個巢狀事務。
宣告式事務
宣告式事務編輯以方法為單位,進行事物控制 丟擲異常,事物回滾。最小的執行單位為方法。決定執行成敗是通過是否丟擲異常來判斷的,丟擲異常即執行失敗 宣告式事務 declarative transaction management 是spring提供的對程式事務管理的方式之一。spring的宣告式事務顧名...
宣告式事務
開啟事務,就需要在spring的配置檔案中配置事務管理器 id datasourcetransactionmanager class org.springframework.jdbc.datasource.datasourcetransactionmanager name datasource re...
Spring宣告式事務
net.sf.hibernate.dialect.oracle9dialect false true net.sf.hibernate.transaction.jdbctransactionfactory 1025 用heibernate來管理事務 當用spring和heibernate一起完成da...