1. 程式人生 > >關於JdbcTmplate和Hibernate共享事務的問題

關於JdbcTmplate和Hibernate共享事務的問題

  今天再做一個專案的時候遇到了一個問題,再一個程式裡邊使用到了兩種持久化的框架,分別是JdbcTemplate和Hibernate。為什麼會使用兩種持久化框架呢?是因為Hibernate是一種面向物件的SQL持久化框架,所以在進行SQL操作的時候回產生一些細粒度的問題,如我們在Java程式中呼叫資料庫中的儲存過程時就會產生問題,所以我們要使用比較原聲的JdbcTemplate技術來為完善。但是在使用的過程中又遇到了一個問題,當兩個持久化技術在同一個事務當中被用到的時候,應該怎樣在Spring的IOC容器中使用對應的事務管理器呢?

  我們知道,Hibernate是比較高階的語言,它封裝了JDBC的內容。它當中由回話工廠產生回話,通過回話來操作資料庫。Spring也是對Java程式的封裝,它封裝的JDBC原聲的事務管理器DatasourceTransactionManager當中咩有SqlSessionFactory的特性,即沒有高階特性,所以他無法使用。所以我們要使用Hibernate的事務管理器而不可用JdbcTemplate的事務管理器來同意管理兩種持久化技術。

  即:高階的可以管理低階的技術,低階的是無法管理高階的技術,因為高階的有很多新特性是低階技術不具備的。

  我們這裡所說的高階和低階,指的是封裝和被封裝的關係。如:Hibernate是對JDBC的封裝。

  通常來講,Hibernate的事務管理器可以同時管理JdbcTemplate是需要滿足一些條件的,二者的datasource必須一致

相關推薦

關於JdbcTmplateHibernate共享事務的問題

  今天再做一個專案的時候遇到了一個問題,再一個程式裡邊使用到了兩種持久化的框架,分別是JdbcTemplate和Hibernate。為什麼會使用兩種持久化框架呢?是因為Hibernate是一種面向物件的SQL持久化框架,所以在進行SQL操作的時候回產生一些細粒度的問題,如

Java知識點集合05--- Spring的兩大核心&Spring事務的傳播特性&隔離級別&ORM&ibatisHibernate&Hibernate對映物件狀態

Spring的兩大核心 spring是J2EE應用程式框架,是輕量級的IOC和AOP容器框架(相對於EJB ),針對javabean生命週期進行管理的親兩級容器。 IOC(控制反轉Invesion of control)或DI(依賴注入 Dependency

HIbernate事務處理二級快取

一.事務概述 問題1:什麼是事務? 事務就是一件事情,這個事情由多個單元組成,這些單元執行時要麼都成功,要麼都不成功. 問題2:事務特性? (ACID) 1.原子性 2.一致 3.隔離性 4,永續性 問題3:關於不考慮事務的隔離性,會產生的問題?

關於hibernateTemplatejdbcTemplate的是否共享事務的說明

1、hibernateTemplate 與 jdbcTemplate 事務為共享。 2、但hibernate中的HQL方法,比如save update等 ,若不呼叫flush(),則資料只存在於緩衝區

Spring JDBCHibernate混用時,如何配置事務管理

由於我們專案的需求比較變態,一部分功能由於需要通過資料庫配置表動態生成持久化邏輯,所以只得採用Spring JDBC,而另一部分的業務資料模型比較固定,所以我打算對這部分使用Hibernate。這樣,一個應用系統同時存在Spring JDBC和Hibernate兩種持久化技術

Hibernate事務處理機制flush方法的用法

注:轉自http://www.cnblogs.com/wangkai1990/p/5704529.html。 首先來看下,session的生命週期 Hibernate中java物件的三種狀態: 1、臨時狀態(transient):用new語句建立,還沒有被持久化,不處於Se

struts action chainhibernate 事務攔截器的一個詭異問題

hibernate 事務攔截器和struts action chain的一個詭異問題 描述: 在頁面使用struts的list集合去做一些輸入框,然後儲存展示。發現儲存之後總是不對。 以下為尋找問題的步驟: 首先懷疑是不是hibernate配置

hibernate關於事務sqlsession的幾個坑

我們知道hibernate是ORM關係型資料庫。和資料庫互動的時候需要sqlsession,如果是儲存、更新、刪除操作的時候,還需要有事務。 在spring和hibernate整合的時候,事務都是有spring來處理。有的時候會遇到坑。 異常一: Could not

Mac 下解決虛擬機virtualbox 4.3windows共享問題

jsb windows安裝 mman 重新啟動 con 安裝ad clas 啟動 sdn mac上面安裝了最新的virtualbox,有些軟件還是須要windows的。 1,在設置了共享之後,仍然不能使用 不能共享 2,找了半天發現須要windows安裝 VB

atitit.spring hibernate事務機制 spring不能保存對象的解決

pda 程序 oca roman 配置 轉載 post 本地事務 對象 atitit.spring hibernate的事務機制 spring不能保存對象的解決 sessionFactory.openSession() 不能。。log黑頭馬sql語言..

MyBatisHibernate的優缺點對比

hiberna 編寫 完全 都是 關聯 生成 模式 相對 臟數據 Hibernate的優點: 1、hibernate是全自動,hibernate完全可以通過對象關系模型實現對數據庫的操作,擁有完整的JavaBean對象與數據庫的映射結構來自動生成sql。 2、功能強大,數據

springhibernate 基礎的增刪改

seh 基礎 except str @override log string return .get 所有的dao層可以有個superDao 比如:BaseHibernateDao 繼承的類是hibernate4 public class BaseHibernateDao

整合Spring框架Hibernate框架

slf4j erl update rep java 監聽 session hiberna .cn -------------------siwuxie095 整合 Spring 框架和 Hibernate 框架

MyBatisHibernate相比,優勢在哪裏?

機制 庫類 用戶 log4 應該 好的 解決方案 hiberna 數據庫 1、開發對比開發速度 hibernate的真正掌握要比Mybatis來得難些。Mybatis框架相對簡單很容易上手,但也相對簡陋些。個人覺得要用好Mybatis還是首先要先理解好Hibernate。

使用MyEclipse反向工程快速創建持久化類、映射文件Hibernate組件

acl next 映射 oracl 模板 反向 安裝 9.png ins 在MyEclipse中創建連接模板 一、選中此項 二、右鍵新建一個連接模板 三、進入此頁面依次選擇數據庫、Driver name 為這個連接模板的名字、點擊Add JARs選擇驅動類(在oracl

Mysql主從配置跳過事務

mysql主從配置和跳過事務Mysql主從配置和跳過事務一、介紹:大型網站中數據層還是原來那種傳統的數據架構,或者只是淡淡靠一臺服務器來扛,如此多的數據庫連接操作,數據必然會崩潰,數據丟失的話,可想而知後果不堪設想。所以我們想到很多解決方法·:一方面采用優秀的代碼框架,進行代碼的優化,采用優秀的數據緩存技術如

解決災難恢復後活動目錄之SYSVOLNELOGON共享丟失

ad 活動目錄; 域控 近期在公司測試域控(Windows Server 2008 R2)的容災演練,通過BE把域控進行了整個操作系統的恢復,系統恢復後,發現除可以登錄系統後,和域相關的操作基本上都報錯。經過簡單的排查發現SYSVOL和NELOGON共享不見了。大家都知道Sysvol文件夾是安裝A

Spring入門(四)— 整合StrutsHibernate

patch pan area src 選擇 roo 們的 void prototype 一、Spring整合Struts 1. 初步整合 只要在項目裏面體現spring和 strut即可,不做任何的優化。 struts 環境搭建 創建action publ

SpringframeworkHibernate版本對應關系

views 5.0 click AC OS 歷史版本 SM source 歷史 org.springframework 3.0.x對應org.hibernate4.0.x版本 org.springframework 3.2.x對應org.hibernate4.2.x版本

spring整合PC蛋蛋系統研發springmvchibernate

PC蛋蛋 系統研發 網站開發 源碼出售 平臺出租 第一步:首先配置springPC蛋蛋系統研發1151880099.com Q.1151880099PC蛋蛋系統研發配置spring配置文件applicationContext.xmlsView Code配置web.xml文件View C