999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的數據庫連接池的實現

2017-08-15 13:18:45李殿環
消費導刊 2016年6期
關鍵詞:數據庫

李殿環

摘要:本文章對基于Java語言的數據庫訪問中出現的問題進行了分析,提出了能改善數據庫訪問的連接池技術并構造了基于Java語言的連接池實例。

關鍵詞:Java 數據庫 連接池

引言

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

一、連接池的工作原理

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

在應用程序與數據庫的交互過程中,通過JDBC與數據庫建立連接是一項相當消耗系統資源的連接過程。簡單地利用JDBC提供的API頻繁地與數據庫建立和關閉連接,會導致系統整體性能嚴重下降,因為連接頻繁使用成了系統性能的瓶頸。但是通過建立一個數據庫連接池以及相應的管理策略,會使得一個數據庫連接可以得到高效安全的復用,避免了數據庫連接的頻繁建立和關閉的開銷,提高了系統的效率。

(二)工作機制

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

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

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

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

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

二、連接池實現

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

ConnPool的基本屬性如下:

driver:JDBC驅動程序名url:數據源名稱size:最大連接數username:用戶名

password:口令connBean:連接對象(內部類ConnBean的實例)

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

ConnPool所需要的基本接口:

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

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

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

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

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

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

public class ConnBean{//ConnBean內部類實現}

通過這幾個接口,可以完成連接池的基本管理。因為要保存每一個連接的狀態,所以還需要一個數據庫連接對象,此時可以用ConnBean內部類實現。

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

三、結束語

此連接池非常簡易,僅能完成連接池基本功能,適用于一般小型應用。總之,在數據庫系統開發中,使用連接池技術能減小系統開銷,提高系統整體性能,建議在應用系統開發中,充分利用連接池技術,構造高性能的數據庫應用。

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 激情爆乳一区二区| 在线观看国产精品一区| 久久6免费视频| 亚洲性影院| 久久久久无码国产精品不卡| 热久久这里是精品6免费观看| 国产三级国产精品国产普男人| 毛片免费在线| 日韩毛片免费视频| 国产经典免费播放视频| 久久香蕉国产线看观看式| 欧美性久久久久| 欧美激情,国产精品| 538精品在线观看| 亚洲专区一区二区在线观看| 久久先锋资源| 欧美激情伊人| 国产精品白浆在线播放| 国产视频资源在线观看| 伊人久热这里只有精品视频99| 欧美中文字幕无线码视频| 欧美日韩一区二区在线免费观看| 国产日韩欧美中文| 欧美日韩国产在线人成app| 久久综合伊人77777| 福利姬国产精品一区在线| 精品国产电影久久九九| 有专无码视频| 九色在线观看视频| 久久亚洲国产最新网站| 午夜a级毛片| 亚洲中文制服丝袜欧美精品| 久久夜色撩人精品国产| 国产微拍精品| 国产精品一区二区国产主播| 亚洲 欧美 偷自乱 图片| 国产打屁股免费区网站| 成人午夜网址| 国产精品19p| 妇女自拍偷自拍亚洲精品| 久久久四虎成人永久免费网站| 中文字幕无线码一区| 国产不卡国语在线| 久无码久无码av无码| 国产精品第5页| 97视频在线观看免费视频| 又爽又大又黄a级毛片在线视频 | 蜜桃视频一区二区三区| 精品久久久久成人码免费动漫| 九九线精品视频在线观看| 久久久久亚洲精品成人网| 亚洲,国产,日韩,综合一区| 亚洲欧美一级一级a| 久久www视频| 91系列在线观看| 成人va亚洲va欧美天堂| 久久精品免费国产大片| 在线观看国产网址你懂的| 国产精品无码久久久久AV| 国产主播喷水| 欧美精品成人一区二区视频一| 亚洲人成人伊人成综合网无码| 激情国产精品一区| 91免费国产在线观看尤物| 亚洲国产欧美目韩成人综合| 日本免费一级视频| 国产精品综合色区在线观看| 日本不卡视频在线| 在线观看亚洲天堂| 亚洲综合狠狠| 97久久超碰极品视觉盛宴| 热九九精品| 国产欧美日韩va另类在线播放| 三上悠亚一区二区| 国产欧美精品一区二区| 91青草视频| 国产精品丝袜在线| 国产成年女人特黄特色毛片免 | 久久综合九九亚洲一区| 亚洲热线99精品视频| 亚洲黄网视频| 亚洲午夜福利在线|