spring學習(十三 宣告式事務)

2022-06-08 14:57:09 字數 1292 閱讀 4962

事務的acid原則

永續性在**中測試事務的一致性,selectuser就作為乙個事務

public listselectuser()

public int adduser(user user)

public int deleteuser(int id)

}在這裡將delete的sql操作寫錯,來測試事務的一致性

<?xml version="1.0" encoding="utf-8" ?>

public "- config 3.0//en"

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

deletes from mybatis.user where id=#

spring-dao.xml中需要新增的配置

xmlns:tx=""

.../spring-tx.xsd

propagation傳播方式:

required:支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。spring的預設選擇

nested:支援當前事務,如果當前事務存在,則執行乙個巢狀事務,如果當前沒有事務,就新建乙個事務。

【下面的不怎麼用】

supports:支援當前事務,如果當前沒有事務,就以非事務方式執行。

mandatory:支援當前事務,如果當前沒有事務,就丟擲異常。

requires_new:新建事務,如果當前存在事務,把當前事務掛起。

not_supported:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

never:以非事務方式執行,如果當前存在事務,則丟擲異常。

配置事務切入aop【寫在spring-dao.xml中】

在測試時,測試類中的事務就具有了一致性,如果delete操作出現錯誤,則整個selectuser操作都會回滾

注意事項:

Spring學習之十三 宣告式事務

事務的acid原則 required 支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。預設為這個 supports 支援當前事務,如果當前沒有事務,就以非事務方式執行。mandatory 支援當前事務,如果當前沒有事務,就丟擲異常。requires new 新建事務,如果當前存在事...

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 ...