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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java數據庫連接池之c3p0簡介_動力節點Java學院整理

Java數據庫連接池之c3p0簡介_動力節點Java學院整理

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

這篇文章主要為大家詳細介紹了Java數據庫連接池之c3p0簡介的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

c3p0是什么

c3p0的出現,是為了大大提高應用程序和數據庫之間訪問效率的。

它的特性:

  • 編碼的簡單易用
  • 連接的復用
  • 連接的管理

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

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

主要要提的是:datasource、DriverManager,想到哪兒寫到哪兒,datasource是更高級一點的api,原因在于相對對應用來說更透明。

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

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

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>

還有一些配置選項,后續詳細說明。可見c3p0的bean引用使用的是:ComboPooledDataSource,該類結構如下:

Java數據庫連接池之c3p0簡介_動力節點Java學院整理

Java數據庫連接池之c3p0簡介_動力節點Java學院整理

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

1、bean:ComboPooledDataSource的父類:AbstractPoolBackedDataSource有一個poolmanager字段,存儲著對pool管理器

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

3、自此該connection已經被獲取到了

4、讓我們看看該connection的真實面目吧:

 ProxyConnection。

5、因此其實原理是:

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎成人免费视频 | 亚洲午夜大片 | 男人j放进女人的p免费看视频 | 天天澡夜夜澡狠狠澡 | 国产视频自拍一区 | 好大好长好紧爽免费 | 国产剧情在线播放 | 日韩一品在线播放视频一品免费 | 亚洲免费在线视频 | 皇上好大好硬好涨好深好爽 | 暖暖视频免费观看视频中国.韩剧 | 亚洲成色www久久网站 | 国产高清好大好夹受不了了 | 国产自在自线午夜精品之la | 9自拍视频在线观看 | 1769亚洲欧美资源站 | 国产精品国产高清国产专区 | xxxxxx日本处大片免费看 | 白丝萝莉喷水 | 日韩一级片在线免费观看 | 草草精品视频 | 99热这里有免费国产精品 | 美女沟厕撒尿全过程高清图片 | 精品丰满人妻无套内射 | 日韩中文在线 | 国产精品日本一区二区三区在线看 | 精品国产中文字幕在线视频 | 久久综合老色鬼网站 | 高清一区二区 | 成年人网站免费在线观看 | 91麻豆影视 | 日韩欧美一区二区在线观看 | 免费网站直接进入 | 明星ai智能人脸替换造梦在线播放 | 日韩永久在线观看免费视频 | 成人快手破解版 | 24adc年龄18岁欢迎大驾光临 | 国产悠悠视频在线播放 | 4444kk在线看片 | 超级乱淫伦小说全集np | 免费一级国产大片 |