-
如果不考慮事務的隔離性,會引發安全問題: 臟讀 - 一個事務讀取了另一個事務改寫但還沒提交的數據,如果這些數據被回滾,則讀到的數據是無效的。 不可重復讀 - 在同一事務中,多次讀取同一數據返回的結果有所不同。 幻讀 - 一個事務讀取了幾行記錄后,另一個 事務插入一些記錄,幻讀就發生了。在后來的查詢中,第一個事務就會發現有些原來沒有的記錄。 事務隔離級別4個: DEFAULT - 使用后端數據庫默認的隔離級別(spring中選項) READ_UNCOMMITED - 允許讀取還沒提交的改變了的數據??赡軐е屡K、幻、不可重復讀 READ_COMMITTED - 允許在并發事務已經提交后讀取??煞乐古K讀,但幻、不可重復讀仍可發生 REPEATABLE_READ - 對相同字段的多次讀取是一致的,除非數據被事務本身改變??煞乐古K、不可重復讀,但幻讀仍可能發生。 SERIALLIZABLE - 完全服從 ACID 的隔離級別,確保不發生臟、幻、不可重復讀。這在所有隔離級別中是最慢的,它是典型的通過完全鎖定在事務中涉及的數據表來完成的。 spring提供一個默認的級別(DEFAULT),使用的是底層數據庫的默認的事務級別。 MySQL默認采用 REPEATABLE_READ 隔離級別 oracle默認采用 READ_COMMITTED 隔離級別查看全部
-
PlatformTransactionManager平臺事務管理: spring為不同的持久層框架提供不同的PlatformTransactionManager接口實現。、 比如: 使用Spring jdbc或ibatis進行持久化數據時,使用org.springframework.jdbc.darasource.DataSourceTransactionManager就可以了。 如果使用hibernate3.0版本進行持久化 數據,可使用org.springframework.orm.hibernateTransactionManager. -----一般使用以上兩個,具體看情況----- JAP - JpaTransactionManager Jdo - JdoTransactionManager JTA - JtaTransactionManager 用到什么,就使用相對應平臺的事務管理就行了。查看全部
-
spring事務管理高層抽象3個接口: PlatformTransactionManager - 事務管理器 TransactionDefinition - 事務定義信息(隔離、傳播、超時、只讀) TransactionStatus - 事務具體運行狀態查看全部
-
老師在哪里可以下載視頻和代碼查看全部
-
事務的特性: 原子性 -> 指事務是一個不可分割的工作單位,事務中的操作要么都發生,要么都不發生。 一致性 -> 指事務前后的數據的完整性必須保持一致。 隔離性 -> 指多個用戶并發訪問數據庫時,一個用戶的事務不能被其他用戶的事務所干擾,多個并發事務之間數據要互相隔離。 持久性 -> 指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,即使數據庫發生故障也不應該對其有任何影響。查看全部
-
事務: 事務指的是邏輯上的一組操作,這組操作要么全部成功,要么全部失敗。 比如:張三給李四轉錢,有可能途中斷電,如果沒有事務管理 ,那么有可能張三的錢沒了,而李四也沒收到。如果通過事務管理,要么一起成功,要么一起失敗。查看全部
-
誰能不能發我一下源代碼 老師查看全部
-
誰知道為什么沒有配注解驅動 測試類中也可以用注解 ?還有就是注解的方式能不能直接針對方法 ?謝謝。誰幫忙解決下查看全部
-
junit查看全部
-
筆記帶截圖不公開查看全部
-
事務管理的接口查看全部
-
事務的四個特性查看全部
-
該圖很重要?。。。?查看全部
-
Spring為不同的持久層框架提供不同的PlatformTransactionManager(接口)的實現。查看全部
-
Spring事務管理的三個接口查看全部
舉報
0/150
提交
取消