欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

擴展Hibernate使用自定義數(shù)據(jù)庫連接池的方法

 更新時間:2016年03月24日 14:26:40   作者:夾克鵬  
這篇文章主要介紹了擴展Hibernate使用自定義數(shù)據(jù)庫連接池的方法,涉及Hibernate數(shù)據(jù)庫操作擴展的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了擴展Hibernate使用自定義數(shù)據(jù)庫連接池的方法。分享給大家供大家參考,具體如下:

在Hibernate的過程中往往碰到這樣的問題:我們現(xiàn)成的產(chǎn)品本來已使用自有的數(shù)據(jù)庫連接池,同時使用Hibernate的話在Hibernate配置中也得配置數(shù)據(jù)庫連接信息,這樣就需要在兩個地方維護數(shù)據(jù)庫連接信息,維護起來感覺相當別扭。

由于我們不是在產(chǎn)品剛開始開發(fā)就加入Hibernate的,所以不合適讓產(chǎn)品直接使用Hibernate的連接池,只好讓Hibernate來使用產(chǎn)品自有的連接池,還好Hibernate已提供了連接池的擴展接口:ConnectionProvider。

Hibernate本身是通過ConnectionProvider接口來實現(xiàn)管理數(shù)據(jù)庫連接的。例如其自帶的C3P0ConnectionProvider,ProxoolConnectionProvider等,我們編寫一個實現(xiàn)ConnectionProvider接口的類,在Hibernate的配置文件中將相關(guān)參數(shù)改成該類就OK,相關(guān)代碼如下:

hibernate.cfg.xml中用以下代碼替代之前的數(shù)據(jù)庫連接信息配置:

<!-- 自定義-使用NMS產(chǎn)品的連接池 -->
<property name="hibernate.connection.provider_class">
com.shine.sourcedesk.jbpm.NmsConnectionProvider
</property>

實現(xiàn)ConnectionManager接口的類:

package com.shine.sourcedesk.jbpm;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import org.hibernate.HibernateException;
import org.hibernate.connection.ConnectionProvider;
import com.shine.framework.jdbc.ConnectionManager;
/**
 * 自定義Hibernate連接池,讓Hibernate使用產(chǎn)品的ConnectionManager
 * @author JiangKunpeng
 *
 */
public class NmsConnectionProvider implements ConnectionProvider{
@Override
public void close() throws HibernateException {
}
@Override
public void closeConnection(Connection connection) throws SQLException {
    //關(guān)閉連接
    ConnectionManager.close(connection);
}
@Override
public void configure(Properties properties) throws HibernateException {
}
@Override
public Connection getConnection() throws SQLException {
    //使用產(chǎn)品的數(shù)據(jù)庫連接池獲取連接
    return ConnectionManager.getConnection();
}
@Override
public boolean supportsAggressiveRelease() {
    return false;
}

希望本文所述對大家基于Hibernate框架的Java程序設(shè)計有所幫助。

相關(guān)文章

  • Java如何有效避免SQL注入漏洞的方法總結(jié)

    Java如何有效避免SQL注入漏洞的方法總結(jié)

    SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來實現(xiàn)攻擊,而是針對程序員編程時的疏忽,通過SQL語句,實現(xiàn)無帳號登錄,甚至篡改數(shù)據(jù)庫,這篇文章主要給大家介紹了關(guān)于Java如何避免SQL注入漏洞的兩種方法,需要的朋友可以參考下
    2022-01-01
  • java Bean與json對象間的轉(zhuǎn)換實例講解

    java Bean與json對象間的轉(zhuǎn)換實例講解

    在本篇文章里小編給大家整理的是關(guān)于java Bean與json間的轉(zhuǎn)換的實例內(nèi)容,有需要的朋友們吧可以學習參考下。
    2020-01-01
  • Shell重啟SpringBoot項目腳本的示例代碼(含服務(wù)守護)

    Shell重啟SpringBoot項目腳本的示例代碼(含服務(wù)守護)

    本文介紹了如何使用?Bash?腳本來管理和守護運行服務(wù),將展示一個示例腳本,該腳本可以停止、啟動和守護運行一個服務(wù),并提供了相應(yīng)的解釋和用法說明,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • java求100以內(nèi)的素數(shù)示例分享

    java求100以內(nèi)的素數(shù)示例分享

    素數(shù)是指因數(shù)只有1和本身的數(shù)字,這篇文章主要介紹了java求100以內(nèi)的素數(shù)示例,需要的朋友可以參考下
    2014-03-03
  • Java多線程Callable和Future接口區(qū)別

    Java多線程Callable和Future接口區(qū)別

    這篇文章主要介紹了Java多線程Callable和Future接口區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java實現(xiàn)word/pdf轉(zhuǎn)html并在線預(yù)覽

    Java實現(xiàn)word/pdf轉(zhuǎn)html并在線預(yù)覽

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)word、pdf文件轉(zhuǎn)html并在線預(yù)覽的功能,文中的示例代碼講解詳細,需要的可以參考一下
    2023-05-05
  • Spring DevTools的介紹

    Spring DevTools的介紹

    今天小編就為大家分享一篇關(guān)于Spring DevTools的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 詳解springboot使用異步注解@Async獲取執(zhí)行結(jié)果的坑

    詳解springboot使用異步注解@Async獲取執(zhí)行結(jié)果的坑

    本文主要介紹了springboot使用異步注解@Async獲取執(zhí)行結(jié)果的坑,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot整合Docker實現(xiàn)一次構(gòu)建到處運行的操作方法

    SpringBoot整合Docker實現(xiàn)一次構(gòu)建到處運行的操作方法

    本文講解的是 SpringBoot 引入容器化技術(shù) Docker 實現(xiàn)一次構(gòu)建到處運行,包括鏡像構(gòu)建、Docker倉庫搭建使用、Docker倉庫可視化UI等內(nèi)容,需要的朋友可以參考下
    2022-10-10
  • Java實現(xiàn)提取不重復(fù)的整數(shù)實例

    Java實現(xiàn)提取不重復(fù)的整數(shù)實例

    這篇文章主要介紹了Java實現(xiàn)提取不重復(fù)的整數(shù)實例,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論