事務及SSH框架相關配置

2021-09-02 15:50:46 字數 1837 閱讀 1011

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 檔...