連接池與分頁

思考:
程序中連接如何管理?

1.連接資源寶貴:需要對(duì)連接管理
2.連接:
a) 操作數(shù)據(jù)庫,創(chuàng)建連接
b) 操作結(jié)束,關(guān)閉

分析:
設(shè)計(jì)頻繁的連接的打開關(guān)閉,影響程序的運(yùn)行效率。

用戶每次請(qǐng)求都需要向數(shù)據(jù)庫獲得鏈接,而數(shù)據(jù)庫創(chuàng)建連接通常需要消耗相對(duì)較大的資源,創(chuàng)建時(shí)間也較長。假設(shè)網(wǎng)站一天10萬訪問量,數(shù)據(jù)庫服務(wù)器就需要?jiǎng)?chuàng)建10萬次連接,極大的浪費(fèi)數(shù)據(jù)庫的資源,并且極易造成數(shù)據(jù)庫服務(wù)器內(nèi)存溢出、拓機(jī)。

連接管理:
預(yù)先創(chuàng)建一組連接,有點(diǎn)餓時(shí)候每次取出一個(gè);用完后,放回。

學(xué)習(xí)連接池:
1)自定義一個(gè)連接池
2)學(xué)習(xí)優(yōu)秀的連接池組件
a) DBCP
b)C3P0

程序?qū)崿F(xiàn)思路:

1)制定“初始化連接數(shù)目”(APP啟動(dòng)的時(shí)候,就執(zhí)行創(chuàng)建)
2)指定“最大連接數(shù)”
3)制定“當(dāng)前使用連接個(gè)數(shù)”(不能超出最大連接數(shù))

圖片.png

參考:http://www.javaweb1024.com/java/JavaWebzhongji/2015/06/01/736.html

數(shù)據(jù)庫連接是一種關(guān)鍵的有限的昂貴的資源,這一點(diǎn)在多用戶的網(wǎng)頁應(yīng)用程序中體現(xiàn)的尤為突出。對(duì)數(shù)據(jù)庫連接的管理能顯著影響到整個(gè)應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。數(shù)據(jù)庫連接池負(fù)責(zé)分配,管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而不是重新建立一個(gè)。

代碼實(shí)現(xiàn):
1)MyPool.java 連接池類
2)指定全局參數(shù):初始haunted數(shù)目,最大連接數(shù),當(dāng)前連接
3)構(gòu)造函數(shù):循環(huán)創(chuàng)建多個(gè)連接
4)寫一個(gè)創(chuàng)建連接的方法
5)獲取連接
--->判斷:池中有連接,直接拿
---> 池中沒有連接,
---> 判斷,是否達(dá)到最大連接數(shù);達(dá)到,拋出異常;沒有達(dá)到最大連接數(shù),新的連接
6)釋放連接

自定義連接池

2.開源的連接池

概述:
Sun公司約定,如果是連接池技術(shù),需要實(shí)現(xiàn)一個(gè)接口!Javax.sql.DataSource;
(DBCP和C3P0都要實(shí)現(xiàn)那個(gè)接口)

1)DBCP連接池

連接池也叫DataSource。
連接池的作用:管理連接。

DBCP是Apache軟件基金組織下的開源連接池實(shí)現(xiàn),使用DBCP數(shù)據(jù)源,應(yīng)用程序應(yīng)該在系統(tǒng)中增加如下兩個(gè)jar包:

  • Commons-dbcp.jar: 連接池的實(shí)現(xiàn)
  • Commons-pool.jar: 連接池實(shí)現(xiàn)的依賴庫
    Tomcat的連接池正式采用該連接池來實(shí)現(xiàn)的。該數(shù)據(jù)庫連接池既可以與應(yīng)用服務(wù)器整合使用,也可由應(yīng)用程序獨(dú)立使用。

核心類:BasicDataSource

圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評(píng)論 6 342
  • 本文包括傳統(tǒng)JDBC的缺點(diǎn)連接池原理自定義連接池開源數(shù)據(jù)庫連接池DBCP連接池C3P0連接池Tomcat內(nèi)置連接池...
    廖少少閱讀 16,940評(píng)論 0 37
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,052評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評(píng)論 19 139
  • 轉(zhuǎn)眼間,一年級(jí)的小豆包已經(jīng)參加過升二年級(jí)的考試了,與一年前相比,說話有點(diǎn)專業(yè)小學(xué)生的味兒了。 ...
    玫蘭妮閱讀 560評(píng)論 0 0

友情鏈接更多精彩內(nèi)容