drop procedure if exists pro_test;
create procedure pro_test
(para_a varchar(50),
para_b varchar(50)
)begin
declare result_code integer default 0; -- 定義返回結果並賦初值0
declare continue handler for sqlexception set result_code=1; -- 在執行過程中出任何異常設定result_code為1
declare continue handler for not found set result_code = 2; -- 如果表中沒有下一條資料則置為2
start transaction; -- 開始事務
/** 這裡寫具體的業務處理...
* 業務處理過程中可以根據實際情況自定義result_code
*/if result_code = 1 then -- 可以根據不同的業務邏輯錯誤返回不同的result_code,這裡只定義了1和0
rollback;
else
commit;
end if;
select result_code;
end ;
Spring事務異常回滾,捕獲異常不丟擲就不會回滾
預設spring事務只在發生未 獲的 runtimeexcetpion時才回滾。spring aop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲到方法的異常,才能進行回滾,預設情況下aop只捕獲runtimeexception的異常,但可以通過 配置來捕獲特定的...
Spring事務異常回滾,捕獲異常不丟擲就不會回滾
下面這種情況,使用了catch捕獲了異常,spring事務 不會發生回滾 try catch exception e 預設spring事務只在發生未 獲的 runtimeexception 時才回滾。springaop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲...
Spring事務異常回滾,捕獲異常不丟擲就不會回滾
預設spring事務只在發生未 獲的 runtimeexcetpion時才回滾。spring aop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲到方法的異常,才能進行回滾,預設情況下aop只捕獲runtimeexception的異常,但可以通過 配置來捕獲特定的...