亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java的數(shù)據(jù)庫連接池的實(shí)現(xiàn)

        2017-08-15 13:18:45李殿環(huán)
        消費(fèi)導(dǎo)刊 2016年6期
        關(guān)鍵詞:數(shù)據(jù)庫

        李殿環(huán)

        摘要:本文章對基于Java語言的數(shù)據(jù)庫訪問中出現(xiàn)的問題進(jìn)行了分析,提出了能改善數(shù)據(jù)庫訪問的連接池技術(shù)并構(gòu)造了基于Java語言的連接池實(shí)例。

        關(guān)鍵詞:Java 數(shù)據(jù)庫 連接池

        引言

        Java語言的跨平臺性、可移植性及安全性等特性,使其應(yīng)用越來越廣泛。在使用Java語言和數(shù)據(jù)庫有關(guān)的應(yīng)用開發(fā)中,一般使用JDBC來進(jìn)行和數(shù)據(jù)庫的交互,直接通過連接,應(yīng)用程序就可以從數(shù)據(jù)庫中訪問數(shù)據(jù)。但對一個復(fù)雜的數(shù)據(jù)庫應(yīng)用來說,需要消耗大量的時間,造成了系統(tǒng)性能的瓶頸。這時如果采用利用連接池技術(shù),可以使數(shù)據(jù)庫連接得到高效、安全的復(fù)用,從而使系統(tǒng)性能獲得顯著的改善。

        一、連接池的工作原理

        (一)問題分析及解決方案

        在應(yīng)用程序與數(shù)據(jù)庫的交互過程中,通過JDBC與數(shù)據(jù)庫建立連接是一項相當(dāng)消耗系統(tǒng)資源的連接過程。簡單地利用JDBC提供的API頻繁地與數(shù)據(jù)庫建立和關(guān)閉連接,會導(dǎo)致系統(tǒng)整體性能嚴(yán)重下降,因?yàn)檫B接頻繁使用成了系統(tǒng)性能的瓶頸。但是通過建立一個數(shù)據(jù)庫連接池以及相應(yīng)的管理策略,會使得一個數(shù)據(jù)庫連接可以得到高效安全的復(fù)用,避免了數(shù)據(jù)庫連接的頻繁建立和關(guān)閉的開銷,提高了系統(tǒng)的效率。

        (二)工作機(jī)制

        連接池提供一種管理機(jī)制來控制其內(nèi)部連接對象的個數(shù),并提供應(yīng)用程序使用的獲取、釋放連接接口。連接池主要由3部分組成:連接池的建立、連接池中連接的使用管理、連接池的關(guān)閉。下面就著重討論這3部分及連接池的配置問題。

        (1)連接池的建立。連接池建立時,根據(jù)配置,連接池從數(shù)據(jù)庫中一次性獲取預(yù)設(shè)數(shù)目的連接對象。這些連接對象作為系統(tǒng)可分配的自由連接,以后所使用的連接都從連接池中獲取,這樣可避免隨意建立、釋放連接所帶來的開銷。

        (2)連接池管理策略。連接池管理策略是連接池機(jī)制的核心。當(dāng)用戶應(yīng)用連接池請求數(shù)據(jù)庫連接時,先查看池中是否有沒有被分配的空閑連接,如果存在,則把空閑連接分配給客戶,并作相應(yīng)處理;如果池中沒有空閑連接,則等待直到有空閑連接分配給客戶,此時該連接被多個用戶復(fù)用。當(dāng)客戶釋放連接時,喚醒所有等待連接的客戶線程并做相應(yīng)的處理。如果連接釋放后沒有等待連接的客戶線程,則把它重新放回連接池中,并不關(guān)閉連接。由此可知:連接池能保證數(shù)據(jù)庫連接的有效復(fù)用,避免頻繁地建立、釋放連接所帶來的系統(tǒng)資源開銷。

        (3)連接池的關(guān)閉。當(dāng)應(yīng)用程序退出時,應(yīng)關(guān)閉連接池,此時應(yīng)把在連接池建立時向數(shù)據(jù)庫申請的連接對象統(tǒng)一歸還給數(shù)據(jù)庫(即關(guān)閉所有數(shù)據(jù)庫連接),這與連接池的建立正好是一個相反過程。

        (4)連接池的配置。數(shù)據(jù)庫連接池中到底要放置多少個連接,連接耗盡后該如何處理呢?這是一個配置策略。這里的配置策略是:根據(jù)具體的應(yīng)用需求,給出一個初始的連接池連接數(shù)目以及一個連接池可以擴(kuò)張到的最大連接數(shù)目。

        二、連接池實(shí)現(xiàn)

        下面利用Java語言,建立一個名為ConnPool的連接池,并以此為例來看看連接池的實(shí)現(xiàn)。ConnPool實(shí)現(xiàn)連接池基本功能,內(nèi)部類connBean實(shí)現(xiàn)對連接管理。

        ConnPool的基本屬性如下:

        driver:JDBC驅(qū)動程序名url:數(shù)據(jù)源名稱size:最大連接數(shù)username:用戶名

        password:口令connBean:連接對象(內(nèi)部類ConnBean的實(shí)例)

        pool:連接池(Vector類型,連接對象集合)

        ConnPool所需要的基本接口:

        private Connection createConnection()lhrows Exception{//建立連接)

        D rivate void addConnection(ConnBean connBean)(//把連接加入連接池

        public synchronized voidinitializePool()throws Exception(//連接池初始化)

        public synchronized ConnectiongetConnection()throws Exception(//置使用標(biāo)記)

        public synchronized voidreleaseConnection(Connection con)(//置未用標(biāo)志)

        public synchronized voidemptyPool(){//關(guān)閉所有連接}

        public class ConnBean{//ConnBean內(nèi)部類實(shí)現(xiàn)}

        通過這幾個接口,可以完成連接池的基本管理。因?yàn)橐4婷恳粋€連接的狀態(tài),所以還需要一個數(shù)據(jù)庫連接對象,此時可以用ConnBean內(nèi)部類實(shí)現(xiàn)。

        連接池經(jīng)實(shí)例化后,由方法initialiaePool()讀取db.properties文件內(nèi)容,并調(diào)用方法createConnection()打開數(shù)據(jù)庫的連接,并獲取size數(shù)目的連接數(shù)。連接池提供的兩個同步方法getConnection()和releaseConnection()用來管理連接池中的連接分配和歸還,JSP服務(wù)線程調(diào)用getConnection()后從pool獲取一個連接,并置其連接標(biāo)志為已用。如果沒有可用連接使當(dāng)前線程處于等待狀態(tài)。JSP服務(wù)線程完成對數(shù)據(jù)庫的操作后,應(yīng)調(diào)用releaseConnection(),方法歸還連接,并激活處于等待狀態(tài)的線程,這樣就基本實(shí)現(xiàn)了簡單的連接池。各JSP頁面能夠復(fù)用連接池內(nèi)的連接對象,只要根據(jù)實(shí)際情況選擇合適的最大連接數(shù),使用連接池對提高系統(tǒng)整體性能大有好處。

        三、結(jié)束語

        此連接池非常簡易,僅能完成連接池基本功能,適用于一般小型應(yīng)用??傊?,在數(shù)據(jù)庫系統(tǒng)開發(fā)中,使用連接池技術(shù)能減小系統(tǒng)開銷,提高系統(tǒng)整體性能,建議在應(yīng)用系統(tǒng)開發(fā)中,充分利用連接池技術(shù),構(gòu)造高性能的數(shù)據(jù)庫應(yīng)用。

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2010年20期)2010-10-19 01:48:32
        色综合88| 午夜爽爽爽男女污污污网站| 免费观看的a级毛片的网站| 亚洲天堂第一区| 日韩精品国产一区在线| 91成人自拍在线观看| 成人精品视频一区二区三区尤物 | 99噜噜噜在线播放| 亚洲精品无码久久久久久| 亚洲日韩AV秘 无码一区二区| 视频在线播放观看免费| 亚洲国产成人极品综合| 怡红院a∨人人爰人人爽| 国产精品国产三级在线高清观看 | 久久久www成人免费精品| 亚洲国产成人久久一区www妖精| 天堂a版一区二区av| 精品厕所偷拍一区二区视频| 国产真实夫妇交换视频| 一区二区三区放荡人妻| 色婷婷亚洲一区二区三区在线| 夜夜躁狠狠躁日日躁视频| 小12萝8禁在线喷水观看| 东京热加勒比日韩精品| 美女丝袜美腿玉足视频| a级毛片免费观看在线| 国产精品一区二区资源| av国产自拍在线观看| 国产精品综合色区在线观看 | 日本一区二区三区中文字幕最新| 日日噜噜噜夜夜狠狠久久蜜桃| 成 人 免 费 黄 色| 亚洲色欲在线播放一区| 日韩精品久久不卡中文字幕| 亚洲精品在线国产精品| 国产精品久久久久久无码| 乱人伦人妻中文字幕不卡| 少妇被按摩出高潮了一区二区| 无码av天堂一区二区三区| 久久福利资源国产精品999| 开心五月激情五月天天五月五月天|