Spring中的宣告式事務

2021-10-05 12:44:47 字數 1522 閱讀 7544

目錄

什麼是宣告式事務

不加事務

使用宣告式事務解決問題

@transactional

spring在不同的事務管理api之上定義了乙個抽象層,使得開發人員不必了解底層的事務管理api就可以使用spring的事務管理機制。spring支援程式設計式事務管理和宣告式的事務管理。

程式設計式事務管理

宣告式事務管理

將spring整合mybatis這個專案中的**copy乙份然後在userdao介面中新增兩個方法

//新增乙個使用者

int adduser(user user);

//根據id刪除使用者

int deleteuser(int id);

insert into user (id,name,pwd) values (#,#,#)

deletes from user where id = #

實現類中的**如下,在乙個方法中呼叫增和刪

//增加一些操作

public listselectuser()

//新增

public int adduser(user user)

//刪除

public int deleteuser(int id) }

測試

@test

public void test2()

可以看到,專案報錯了,但是插入那條語句生效了

這顯然違背了事務的一致性原則

宣告式的意思是將事務管理**從業務方法中分離出來,以宣告的方式來實現事務管理1.標頭檔案的約束匯入 : tx 

xmlns:tx=""

/spring-tx.xsd">

2.向bean中注入jdbc事務

3.配置事務的通知

4.配置aop

再次測試,程式依然報錯,但是資料卻未插入,事務實現了

Spring宣告式事務

net.sf.hibernate.dialect.oracle9dialect false true net.sf.hibernate.transaction.jdbctransactionfactory 1025 用heibernate來管理事務 當用spring和heibernate一起完成da...

spring宣告式事務

1.什麼是事務 事務是程式中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性 要麼成功,要麼失敗 2.事務的特性 事務特性分為四個 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability ...

Spring 宣告式事務

propagation 事務傳播機制有如下幾種 required 預設值,表示如果存在乙個事務,則支援當前事務 如果沒有事務,則開啟乙個新事務。requires new 表示總是開啟乙個新的事務,如果乙個事務已經存在,則將這個存在的事務掛起,開啟新事務執行該方法。mandatory 表示如果存在乙個...