一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java數(shù)據(jù)庫(kù)連接池之c3p0簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

2020-12-10 14:04leeying Java教程

這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)庫(kù)連接池之c3p0簡(jiǎn)介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

c3p0是什么

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

它的特性:

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

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

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

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

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

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

c3P0的配置 

c3p0的bean配置如下:

?
1
2
3
4
5
6
7
8
9
10
<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ì)說(shuō)明。可見(jiàn)c3p0的bean引用使用的是:ComboPooledDataSource,該類結(jié)構(gòu)如下:

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

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

以上類圖都不是很完全,不過(guò)大體能表達(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ù)池的大小(expand或shrink),管理unused、expired、checkout、checkin連接。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久青草国产97香蕉在线视频 | 国产亚洲欧美日韩综合综合二区 | 牛人国产偷窥女洗浴在线观看 | 欧美同性videos| 韩国女主播一区二区视频 | 丝瓜香蕉视频 | 午夜AV亚洲一码二中文字幕青青 | 欧美激情精品久久久久久不卡 | 奇米网7777 | 奇米7777第四色 | 日本黄色录像视频 | 国产成人精品777 | 天堂a免费视频在线观看 | 俄罗斯美女毛茸茸bbwbbw | 日本老师xxxxx18 | 九九365资源稳定资源站 | 亚洲精品国产精品国自产观看 | 香蕉久久一区二区三区啪啪 | 亚洲高清一区二区三区四区 | 日韩在线一区 | 1769最新资源站 | 韩国情事伦理片观看地址 | 无码人妻视频又大又粗欧美 | 天天做天天爰夜夜爽 | 久久伊人在 | 日本不卡在线一区二区三区视频 | 网站视频免费 | 四虎国产精品免费久久久 | 美女张开双腿让男人捅 | 日韩成人精品在线 | 久久精品国产免费播放 | 亚洲国产成人精品激情 | 男人的天堂在线观看视频不卡 | 亚洲性夜 | 国产亚洲高清国产拍精品 | 双夫1v2 | 国产真实乱子伦xxxxchina | 国产亚洲欧美一区二区三区 | 无人区免费一二三四乱码 | 亚洲天堂免费观看 | 国产成人一区二区三区视频免费蜜 |