最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java數(shù)據(jù)庫連接池之c3p0簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年08月03日 10:40:13   作者:leeying  
這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)庫連接池之c3p0簡(jiǎn)介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

c3p0是什么

c3p0的出現(xiàn),是為了大大提高應(yīng)用程序和數(shù)據(jù)庫之間訪問效率的。

它的特性:

  • 編碼的簡(jiǎn)單易用
  • 連接的復(fù)用
  • 連接的管理

說到c3p0,不得不說一下jdbc本身,c3p0愿意就是對(duì)數(shù)據(jù)庫連接的管理,那么原有的概念還是得清晰:DriverManager、Connection、StateMent、ResultMent。

jdbc:java database connective這套API,不用多說,是一套用于連接各式dbms或連接橋接器的api,兩個(gè)層級(jí):上層供應(yīng)用方調(diào)用api,下層,定義了各個(gè)dbms的spi的api(具體文檔見:這里)。

主要要提的是:datasource、DriverManager,想到哪兒寫到哪兒,datasource是更高級(jí)一點(diǎn)的api,原因在于相對(duì)對(duì)應(yīng)用來說更透明。

Connection:同dbms的邏輯鏈接,類似于session管理概念, SQL statements are executed and results are returned within the context of a connection.

jdbc的概念就到這里,平時(shí)用得比較多。

c3P0的配置 

c3p0的bean配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  <property name="driverClass" value="${jdbc.driverClassName}" />
  <property name="jdbcUrl" value="${jdbc.url}" />
  <property name="user" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
  <property name="checkoutTimeout" value="30000" />
  <property name="maxPoolSize" value="15" />
  <property name="idleConnectionTestPeriod" value="180" />
  <property name="maxIdleTime" value="180" />
 </bean>

還有一些配置選項(xiàng),后續(xù)詳細(xì)說明??梢奵3p0的bean引用使用的是:ComboPooledDataSource,該類結(jié)構(gòu)如下:

以上類圖都不是很完全,不過大體能表達(dá)出類之間的原理:

1、bean:ComboPooledDataSource的父類:AbstractPoolBackedDataSource有一個(gè)poolmanager字段,存儲(chǔ)著對(duì)pool管理器

2、獲取ds.getConnection()鏈接對(duì)象時(shí),內(nèi)部使用getPoolManger()獲取C3p0ConnectionPooledManager(mgr)對(duì)象,該manager管理著pool對(duì)象:C3P0PooledConnectionPool對(duì)象,mgr.getPool().checkoutPooledConnection()

3、自此該connection已經(jīng)被獲取到了

4、讓我們看看該connection的真實(shí)面目吧:

 ProxyConnection。

5、因此其實(shí)原理是:

從pool里獲取到的connection,是proxy包裝的connection,而對(duì)connection的釋放或者重用,是pool的管理責(zé)任:初始化池大小,維護(hù)池的大?。╡xpand或shrink),管理unused、expired、checkout、checkin連接。

真正底層的連接是jdbc自己的連接,而c3p0的管理部分,基本上使用的是synchronized關(guān)鍵字,使用timerTask定時(shí)器工作。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題

    解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題

    這篇文章主要介紹了解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • redis與spring整合使用的步驟實(shí)例教程

    redis與spring整合使用的步驟實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于redis與spring整合使用的相關(guān)資料,文中通過示例代碼將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • 詳解在Java中如何創(chuàng)建多線程程序

    詳解在Java中如何創(chuàng)建多線程程序

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著在Java中如何創(chuàng)建多線程程序展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 關(guān)于maven下載慢的問題

    關(guān)于maven下載慢的問題

    這篇文章主要介紹了關(guān)于maven下載慢的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • java前后端加密解密crypto-js的實(shí)現(xiàn)

    java前后端加密解密crypto-js的實(shí)現(xiàn)

    這篇文章主要介紹了java前后端加密解密crypto-js的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • IDEA?報(bào)Plugin'maven-resources-plugin:'not?found?的解決方案

    IDEA?報(bào)Plugin'maven-resources-plugin:'not?found?

    如果在使用?IDEA?時(shí)遇到?"Plugin?'maven-resources-plugin:'?not?found"?錯(cuò)誤,可能是由于?Maven?倉庫中未找到所需的?Maven?插件,近小編給大家分享幾種解決方法,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Springboot中的@ConditionalOnBean注解詳細(xì)解讀

    Springboot中的@ConditionalOnBean注解詳細(xì)解讀

    這篇文章主要介紹了Springboot中的@ConditionalOnBean注解詳細(xì)解讀,@ConditionalOnMissingBean注解兩個(gè)類,一個(gè)Computer類,一個(gè)配置類,想要完成;如果容器中沒有Computer類,就注入備用電腦Computer類,如果有Computer就不注入,需要的朋友可以參考下
    2023-11-11
  • Spring中Bean的生命周期使用解析

    Spring中Bean的生命周期使用解析

    這篇文章主要介紹了Spring中Bean的生命周期使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 淺談FileItem類的常用方法

    淺談FileItem類的常用方法

    下面小編就為大家?guī)硪黄獪\談FileItem類的常用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 詳解Java并發(fā)編程中的優(yōu)先級(jí)隊(duì)列PriorityBlockingQueue

    詳解Java并發(fā)編程中的優(yōu)先級(jí)隊(duì)列PriorityBlockingQueue

    PriorityBlockingQueue是Java中實(shí)現(xiàn)了堆數(shù)據(jù)結(jié)構(gòu)的線程安全的有界阻塞隊(duì)列。本文將會(huì)深入解讀PriorityBlockingQueue的源碼實(shí)現(xiàn),感興趣的可以了解一下
    2023-05-05

最新評(píng)論

西和县| 旺苍县| 丹江口市| 左权县| 霍州市| 奉新县| 澜沧| 德昌县| 阜新市| 鹤峰县| 共和县| 维西| 双鸭山市| 怀来县| 土默特左旗| 佳木斯市| 太仓市| 樟树市| 抚顺县| 广饶县| 宁津县| 天气| 夏河县| 神木县| 洱源县| 大埔区| 厦门市| 迁安市| 揭西县| 土默特左旗| 辉南县| 天峻县| 宝应县| 苗栗市| 都江堰市| 庄河市| 东辽县| 康马县| 长子县| 鲁山县| 剑川县|