propagation_required事務
採用程式設計式事務
1、 getcurrentsession()與opensession()的區別?
* 採用getcurrentsession()建立的session會繫結到當前執行緒中,而採用opensession()建立的session則不會
* 採用getcurrentsession()建立的session在commit或rollback時會自動關閉,而採用opensession建立的session必須手動關閉
2、使用getcurrentsession()需要在hibernate.cfg.xml檔案中加入如下配置:
* 如果使用的是本地事務(jdbc事務)
thread
* 如果使用的是全域性事務(jta事務)
jta採用宣告式事務
宣告式事務配置
* 配置sessionfactory
* 配置事務管理器
* 事務的傳播特性
* 那些類哪些方法使用事務
2、編寫業務邏輯方法
* 繼承hibernatedaosupport類,使用hibernatetemplate類持久化,hibernatetemplate
是hibernate session的封裝
* 預設的回滾是runtimeexception(包括繼承runtimeexception的子類),普通異常不回滾
* 在編寫業務邏輯方法時,最好將異常一直往上丟擲,在呈現層處理(struts)
* spring的事務需要設定到業務方法上(事務邊界定義到facade類上),不要新增到dao上
3、了解事務的集中傳播忒性
1、propagation_required:如果存在乙個事務,則支援當前事務。如果沒有事務則開啟。
2、propagation_supports:如果存在乙個事務,支援當前事務。如果沒有事務,則非事務的執行。
3、propagation_mandatory:如果已經存在乙個事務,支援當前事務。如果沒有乙個活動的事務,則丟擲異常。
4、propagation_requires_new:總是開啟乙個新的事務。如果乙個事務存在,則將這個存在的事務掛起。
5、propagation_not_supported:總是非事務地執行,並掛起任何存在的事務。
6、propagation_never:總是非事務地執行,如果存在乙個活動事務,則丟擲異常。
7、 propagation_nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中,如果沒有活動事務,則按
transactiondefinition.propagation_required屬性執行
4、spring事務的隔離級別
1、 isolation_default: 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。
2、isolation_read_uncommitted:這是事務最低的隔離級別,它允許另外乙個事務可以看到這個事務未提交的資料。
3、isolation_read_committed:保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料。
4、isolation_repeatalbe_read: 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻想讀。它除了保證乙個事務不能讀取另外
乙個事務未提交的資料外,還保證了避免下面的情況產生(不可重複讀)。
5、isolation_serializable 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不課重複讀外,還避
免了幻想讀。
classpath:hibernate.cfg.xml
//唯讀提高了效能
SSH事務配置
1 準備工作 可以利用hibernate tools生成相關對映檔案已經po物件 dao物件,dao也可以自己手動編寫,無非就是實現crud,如果通過繼承hibernate提供的 hibernatedaosupport,則可以更輕鬆的實現 org.hibernate.dialect.mysqldia...
SSH框架搭建及配置檔案
2,通過web.xml來載入spring的環境。也就是說在web.xml的檔案中加入如下 說明 listener優先啟動 注意 一些配置檔案必須放在src的目錄下,否則會拋錯誤,說找不到檔案。3,struts2按照以前的用法,配置好。struts2的配置檔案包括兩個 乙個是struts.xml,乙個...
Linux CentOS相關SSH配置
一位第一次老緊張的小軒澈寫的第一篇部落格 今天要玩的內容比較簡單,也最 基礎的東西西 檢視ip ip addr或ifconfig 剛安裝的centos 它自動獲取ip位址是關閉的 所以這裡我們看不到 cd etc sysconfig network scripts找到乙個 ifcfg ens33 檔...