1. 程式人生 > >spring整合hibernate的兩種方式

spring整合hibernate的兩種方式

       我們學過spring的同學都知道,spring可以整合其他的框架協同開發,大大的降低開發的時間和提高了效率,但是我們在配置的時候總會發生各種各樣的問題,下面我記錄一下我在配置的時候出現的問題和簡單總結一下配置的過程

這個檔案是hibernate的配置檔案,裡面配置了一個對映檔案User.hbm.xml這個就不解釋了,不懂的可以去參看hibernate的視訊.然後我們都知道要和spring進行整合


在spring.xml檔案中先配置一個數據庫連線池,我用的是mysql資料庫並且用了c3p0的連線池,其他連線池配置類似,然後我的mysql是綠色版的,沒有密碼,不需要安裝,目前在百度上搜索"mysql下載"搜尋出來的就是綠色版的,你們可以去常識一下


然後配置一個sessionFactoryBeab,可以看到這裡使用了兩種方式配置hibernate,第一種方式是引用我們之前hibernate配置檔案,這個也是我比較推薦的,原因相信大家都懂.第二種方式是在spring.xml檔案中直接進行配置,這也是可以的,配置方式就是我上面截圖的並且註釋了的程式碼,額外說一句,xml檔案中的註釋快捷鍵是:ctrl+shift+c

到此spring整合hinernate的配置就結束了

最後我就再給出事務的配置


這樣子就可以在service層的方法上直接使用@Transactional進行標識這個方法是需要開啟事務的,當然我們還可以配置事務的配置,這個我就不多說了.

但是這裡採用了事務,就不能在hibernate配置中使用

<!-- 為當前執行緒繫結一個session -->
<property name="current_session_context_class">thread</property>

原因是這會導致hibernate自己去生成一個session,spring管理的時候又會生成一個,直接導致了@Transactional標識的註解不能開啟事務,所以需要注意