hibernate學習 C3P0連接池

經(jīng)過前面的學習,已經(jīng)掌握了hibernate的基本使用指郁。本篇講的是hibernate使用數(shù)據(jù)庫連接池的配置。

1拷呆、使用C3P0

  • 導入jar包坡氯,hibernate-release-5.2.10.Final\lib\optional\c3p0文件夾下
  • 配置hibernate.cfg.xml文件,直接貼出完整配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
          
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hiber</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <!-- 綁定本地session 放在本地線程中 共三個值 一般用thread與本地線程綁定 -->
        <property name="hibernate.current_session_context_class">thread</property>
        
        <!-- C3P0連接池配置 -->
        <!-- 丟棄 不必配置即可使用 property name="hibernate.connection.provider_class">
            org.hibernate.c3p0.internal.C3P0ConnectionProvider
        </property -->
        <!-- 最大連接數(shù) -->        
        <property name="hibernate.c3p0.max_size">20</property>
        <!-- 最小連接數(shù) -->
        <property name="hibernate.c3p0.min_size">5</property>
        <!-- 當連接池里面的連接用完的時候,C3P0一下獲取的新的連接數(shù) -->
        <property name="hibernate.c3p0.acquire_increment">2</property>
        <!-- 最大的PreparedStatement的數(shù)量 -->
        <property name="hibernate.c3p0.max_statements">50</property>
        <!-- 連接的最大空閑時間,1800秒內(nèi)未使用則連接被丟棄。單位為秒 -->
        <property name="hibernate.c3p0.timeout">1800</property>
        <!-- 每隔120秒檢查連接池里的空閑連接是否超時,單位是秒 -->
        <property name="hibernate.c3p0.idle_test_period">120</property>
        
        <mapping resource="cn/lkangle/entity/onetwo.hbm.xml"/>
        <mapping resource="cn/lkangle/entity/three.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
  • 測試使用C3P0

控制臺輸出如上信息說明C3P0使用成功箫柳。END


在源碼中發(fā)現(xiàn)hibernate中C3P0有效的配置也就已上六個手形,而我百度到的還發(fā)現(xiàn)這樣一條配置<property name="hibernate.c3p0.validate">true</property>設置為true每次都檢測連接是否可用。沒有測試不知道是否有用悯恍。

下面是AvailableSettings類中關(guān)于C3P0的配置部分代碼

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // c3p0 connection pooling specific settings
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    /**
     * A setting prefix used to indicate settings that target the hibernate-c3p0 integration
     */
    String C3P0_CONFIG_PREFIX = "hibernate.c3p0";

    /**
     * Maximum size of C3P0 connection pool
     */
    String C3P0_MAX_SIZE = "hibernate.c3p0.max_size";

    /**
     * Minimum size of C3P0 connection pool
     */
    String C3P0_MIN_SIZE = "hibernate.c3p0.min_size";

    /**
     * Maximum idle time for C3P0 connection pool
     */
    String C3P0_TIMEOUT = "hibernate.c3p0.timeout";

    /**
     * Maximum size of C3P0 statement cache
     */
    String C3P0_MAX_STATEMENTS = "hibernate.c3p0.max_statements";

    /**
     * Number of connections acquired when pool is exhausted
     */
    String C3P0_ACQUIRE_INCREMENT = "hibernate.c3p0.acquire_increment";

    /**
     * Idle time beforeQuery a C3P0 pooled connection is validated
     */
    String C3P0_IDLE_TEST_PERIOD = "hibernate.c3p0.idle_test_period";
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末库糠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涮毫,更是在濱河造成了極大的恐慌瞬欧,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罢防,死亡現(xiàn)場離奇詭異艘虎,居然都是意外死亡,警方通過查閱死者的電腦和手機咒吐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門野建,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恬叹,你說我怎么就攤上這事候生。” “怎么了绽昼?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵唯鸭,是天一觀的道長。 經(jīng)常有香客問我硅确,道長目溉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任菱农,我火速辦了婚禮缭付,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘大莫。我一直安慰自己,他們只是感情好官份,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布只厘。 她就那樣靜靜地躺著,像睡著了一般舅巷。 火紅的嫁衣襯著肌膚如雪羔味。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天钠右,我揣著相機與錄音赋元,去河邊找鬼。 笑死,一個胖子當著我的面吹牛搁凸,可吹牛的內(nèi)容都是我干的媚值。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼护糖,長吁一口氣:“原來是場噩夢啊……” “哼褥芒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嫡良,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤锰扶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寝受,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坷牛,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年很澄,在試婚紗的時候發(fā)現(xiàn)自己被綠了京闰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡痴怨,死狀恐怖忙干,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浪藻,我是刑警寧澤捐迫,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站爱葵,受9級特大地震影響施戴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萌丈,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一赞哗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辆雾,春花似錦肪笋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惭墓,卻和暖如春坛梁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腊凶。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工划咐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拴念,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓褐缠,卻偏偏與公主長得像政鼠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子送丰,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Hibernate: 一個持久化框架 一個ORM框架 加載:根據(jù)特定的OID,把一個對象從數(shù)據(jù)庫加載到內(nèi)存中OID...
    JHMichael閱讀 1,967評論 0 27
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理缔俄,服務發(fā)現(xiàn),斷路器器躏,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 目錄 1. Hibernate框架的概述 1.1 Hibernate簡介 1.2 為什么要學習Hibernate ...
    深海魚Q閱讀 1,020評論 0 14
  • 一俐载、Hibernate查詢 查詢概述Get/load主鍵查詢對象導航查詢HQL查詢 : Hibernate Qu...
    奮斗的老王閱讀 849評論 0 51
  • 我真的要發(fā)財了遏佣。 5年前,我看著QQ郵件里發(fā)來的“恭喜您已通過DNF記者團寫手考核”郵件揽浙,內(nèi)心無線憧憬状婶,想象著從此...
    赤壁傷痕閱讀 265評論 0 0