使用hibernatecallback的原因

2021-09-01 13:37:34 字數 1119 閱讀 4324

**:

在spring中有了hibernatedaosupport為什麼使用 hibernatecallback

使用 hibernatecallback 的理由 ,

在專案開發中,使用了框架整合,spring,hibernate。。。

在開發中多處用到了session,在對session的使用維護上,有幾種看法。

1.getcurrentsession();

獲得當前會話中的session,該session有容器自行維護管理,spring可以**事務。

2.this.getsession();

從當前的執行中獲得或建立乙個hibernate的session物件,自己關閉,釋放連線資源。

3.opensession();

呼叫函式自行建立乙個資料庫的連線,並將其開啟,在使用spring操作非查詢語句的請況下,spring的事務對該session物件不

起到事務管理的作用,所以該session物件應當由程式設計師自己關閉,釋放連線資源。

在專案中使用到了spring框架技術,就是說明,我們不想直接去獲取,開啟session,開始乙個事務,處理異常,提交乙個事務,最後關

閉乙個session,使用spring後,這樣的工作對我們來講太過於繁瑣,

我們自己只專注於業務,不想去作這些重複而繁瑣的操作。我們把這些責任全部委託給了spring的hibernatetemplate,然後使用宣告式

的配置來實現這樣的功能。

如果我們通過類似getsession()這樣的方法獲得了session,那就意味著我們放棄了上面所說的一切好處。

在spring的框架中hibernatetemplate提供了相當多有用的輔助功能。我們想用它提供的輔助功能。但是hibernatetemplate包裝了

hibernate的**,使用了它以後不能直接訪問到session了。

hibernatetemplate提供hibernatecallback,就是為了滿足這種使用了hibernatetemplate的情況下,仍然需要直接訪問session的需求而

來的。它提供了在hibernatetemplate裡面直接訪問session的能力,

程式設計師不必人為的管理session物件, 這個就是使用hibernatecallback的原因。

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...