動態

詳情 返回 返回

事務面試題 - 動態 詳情

1.什麼是數據庫事務

答:

事務時數據庫操作的一個邏輯單元,由一組SQL操作組成,這些操作要麼全部成功執行,要麼全部失敗回滾。事務的目的是保證數據的一致性和完整性。

事務的四大特性(ACID):

1.原子性:事務是一個不可分割的工作單位,所有操作要麼都完成要麼都不完成。
2.一致性:事務必須使數據庫從一個一致狀態變換到另一個一直狀態。
3.隔離性:多個事務併發執行時,一個事務的執行不應影響其他事務。
4.持久性:一旦事務提交,其對數據庫的修改應該是永久的。

2.如何實現事務的提交和回滾

答:

在MySQL中,可以通過一下語句控制事務:
1.開啓事務:start transation
2.提交事務:commit
3.回滾事務:rollback
在java應用中使用Spring的聲明式事務管理,可以使用@Transactional註解來實現事務的自動提交和回滾

3.Spring中的事務管理是如何工作的

答:

Spring 提供了強大的事務管理支持,主要通過@Transaction註解來管理事務。以下是關鍵點:
聲明事務管理:使用@Transaction註解在方法或類上定義事務邊界。
編程式事務管理:使用TransactionTemplatePlatfromTransactionManger手動管理事務。

4.事務的傳播行為是什麼,常見的傳播行為有哪些

答:

事務傳播行為定義了事務方法被調用時如何處理事務。

常見的傳播行為包括:

REQUIRED:如果當前存在事務,則加入該事務,如果不存在事務,則新建一個事務(默認值)。
REQUIRES_NEW:總是新建一個事務,並掛起當前事務(如果有)。
SUPPORTS:如果當前存在事務,則加入該事務,如果不存在事務,則以非事務方式執行。

5.事務失效的常見原因有哪些

答:

事務失效通常發生在以下幾種情況:

自調用問題:在同一個類中調用帶有@Transactionl註解的方法時,事務不會生效。
異常被捕獲:如果事務方法中的異常被捕獲並處理,Spring無法感知到異常,導致事務不會滾。
非public方法@Transactionl註解只能應用在public方法上。
配置問題:沒有正確啓用事務管理(如果沒有添加@EnableTransactionManagement註解)

解決方案:

避免自調用問題,可以將需要事務的方法移到另一個類中。
顯示拋出異常,不要捕獲異常後繼續執行。
確保事務方法是public的。

Add a new 評論

Some HTML is okay.