java面試,事物引發的問題以及事物的隔離級別

事務是什麼?

事務是針對數據庫數據的一系列操作,數據庫應用系統通過事務集來完成對數據的存取。

事務有什麼用?

事物是爲了保證數據的一致性和完成性而存在的,實際上就是控制數據安全訪問。

事務有哪些特性?

事務有ACID4種特性,分別爲:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

原子性:指對數據的操作要麼全部成功,要麼全部失敗。

一致性:指事務執行前後,數據狀態保持一致。

隔離性:指一個事務的處理不能影響到另一個事務的處理。

持久性:指事務處理結束後,其效果在數據庫中是持久化的。

事務併發可能會引發那些問題?

髒讀:一個事務讀取到了另一個事務未提交的數據。

不可重複讀:一個事務的操作導致另一個事務前後兩次讀取的數據不一樣。

幻讀:一個事務的操作導致另一個事務前後兩次查詢的數據量不同。

爲了解決以上問題事務設置哪些隔離級別?

爲了解決事務併發引發的問題事務設置了4中隔離級別以解決各種問題,分別如下:

1.READ_UNCOMMITTED  讀未提交,這個級別的隔離機制無法解決髒讀、不可重複讀、幻讀等問題。

2.READ_COMMITTED  讀提交,這個隔離級別可以解決髒讀問題,但不能解決不可重複讀和幻讀問題。

3.REPEATABLE_READ  重複讀,這個隔離級別可以解決髒讀和不可重複讀的問題,但仍然無法解決幻讀問題。

4.SERIALIZABLE 串行化,這個是最高級別,可以解決以上三個可能出現的問題。

MySQL的默認隔離級別可以用 select @@tx_isolation;來查看,一般默認是REPEATABLE_READ。

spring事務的開啓方式有幾種?

有兩種:編程式和聲明式

編程式是程序中以寫代碼的形式進行事務的開啓。

聲明式是這xml配置文件中配置開啓。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章