手動控制ibatis事務

2021-08-31 12:43:21 字數 628 閱讀 5524

前段時間做乙個老專案的開發,系統架構為struts+spirng+ibatis。

由於業務需要,在系統中增加了h2資料庫,需要對h2的操作進行事務控制。原來系統中的資料庫是oracle資料庫,這樣加系統原來的資料庫,就有了兩個資料來源。原專案中是通過spring的ransactionproxyfactorybean進行事務控制的,ransactionproxyfactorybean只能配置乙個資料來源。

通過修改配置檔案,可以使用jta進行事務控制,這樣可以實現跨資料來源的事務控制。但是很不幸,不能修改原來的配置檔案。所以只能通過程式設計手動實現h2的事務控制。

因系統中通過ibatis的dao進行資料庫的管理。所以打算通過ibatis dao框架的sqlmap實現事務控制。

**如下:

//手動控制事務

sqlmapclient sqlmapclient = (sqlmapclient) ((correlatealarmdaoimpl) correlatealarmdao).getsqlmapclienttemplate().getsqlmapclient();

try catch(exception e)finally catch (sqlexception e)

}

手動控制事務

1 事務簡單介紹 1 事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是乙個不可切割的工作單位。通過事務,sql server能將邏輯相關的一組操作繫結在一起,以便server保持資料的完整性。2 事務一般是以begin transactio...

Ibatis使用事務

一 事務概念 事務是一種機制 是一種操作序列,它包含了一組資料庫操作命令,這組命令要麼全部執行,要麼全部不執行。因此事務是乙個不可分割的工作邏輯單元。在資料庫系統上執行併發操作時事務是作為最小的控制單元來使用的。這特別適用於多使用者同時操作的資料通訊系統。例如 訂票 銀行 保險公司以及 交易系統等。...

ibatis事務管理

ibatis預設自動提交事務,在使用dao時,類似如下 integer authorid dao.insert author book.setauthorids authorid dao.insert book 因為沒有顯式地啟動事務,ibatis會認為兩個insert為兩個事務。可以通過ibati...