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

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

 更新時(shí)間:2017年08月03日 10:40:13   作者:leeying  
這篇文章主要為大家詳細(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,想到哪兒寫(xiě)到哪兒,datasource是更高級(jí)一點(diǎn)的api,原因在于相對(duì)對(duì)應(yīng)用來(lái)說(shuō)更透明。

Connection:同dbms的邏輯鏈接,類(lèi)似于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ì)說(shuō)明??梢?jiàn)c3p0的bean引用使用的是:ComboPooledDataSource,該類(lèi)結(jié)構(gòu)如下:

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

1、bean:ComboPooledDataSource的父類(lèi):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)文章

  • 淺談java指令重排序的問(wèn)題

    淺談java指令重排序的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談java指令重排序的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 簡(jiǎn)單易懂的Java Map數(shù)據(jù)添加指南

    簡(jiǎn)單易懂的Java Map數(shù)據(jù)添加指南

    Java提供了多種方法來(lái)往Map中添加數(shù)據(jù),開(kāi)發(fā)者可以根據(jù)具體需求選擇合適的方法,需要的朋友可以參考下
    2023-11-11
  • Java多線程案例之定時(shí)器詳解

    Java多線程案例之定時(shí)器詳解

    定時(shí)器也是軟件開(kāi)發(fā)中的一個(gè)重要組件.?類(lèi)似于一個(gè)?“鬧鐘”.?達(dá)到一個(gè)設(shè)定的時(shí)間之后,?就執(zhí)行某個(gè)指定好的代碼。本文就來(lái)和大家詳細(xì)聊聊定時(shí)器的原理與使用,感興趣的可以了解一下
    2022-10-10
  • 解決Jenkins集成SonarQube遇到的報(bào)錯(cuò)問(wèn)題

    解決Jenkins集成SonarQube遇到的報(bào)錯(cuò)問(wèn)題

    本文給大家分享Jenkins集成SonarQube遇到的報(bào)錯(cuò)問(wèn)題及解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07
  • Java并發(fā)編程之詳解ConcurrentHashMap類(lèi)

    Java并發(fā)編程之詳解ConcurrentHashMap類(lèi)

    在之前的文章中已經(jīng)為大家介紹了java并發(fā)編程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue、BlockingDeque接口,本文為系列文章第八篇.需要的朋友可以參考下
    2021-06-06
  • SpringBoot超詳細(xì)分析啟動(dòng)流程

    SpringBoot超詳細(xì)分析啟動(dòng)流程

    今天小編就為大家分享一篇關(guān)于SpringBoot整個(gè)啟動(dòng)過(guò)程的分析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2022-07-07
  • 使用IDEA畫(huà)UML圖的詳細(xì)步驟

    使用IDEA畫(huà)UML圖的詳細(xì)步驟

    UML是面向?qū)ο笤O(shè)計(jì)的建模工具,獨(dú)立于任何具體程序設(shè)計(jì)語(yǔ)言,是一種為面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說(shuō)明、可視化和編制文檔的一種標(biāo)準(zhǔn)語(yǔ)言,本文重點(diǎn)給大家介紹使用IDEA畫(huà)UML圖的詳細(xì)步驟,需要的朋友參考下吧
    2021-06-06
  • String字符串拼接方法concat和+的效率對(duì)比

    String字符串拼接方法concat和+的效率對(duì)比

    這篇文章主要介紹了String字符串拼接方法concat和+的效率對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java對(duì)數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例詳解

    Java對(duì)數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例詳解

    這篇文章主要介紹了Java對(duì)數(shù)組實(shí)現(xiàn)選擇排序算法的實(shí)例,選擇排序的比較次數(shù)為 O(N^2)而交換數(shù)為O(N),需要的朋友可以參考下
    2016-04-04
  • Java 遞歸遍歷實(shí)現(xiàn)linux tree命令方式

    Java 遞歸遍歷實(shí)現(xiàn)linux tree命令方式

    這篇文章主要介紹了Java 遞歸遍歷實(shí)現(xiàn)linux tree命令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論