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

WEB開發(fā)中數(shù)據(jù)庫連接池的使用技巧

2019-12-19 17:50:25王磊孟祥武李平
數(shù)碼設(shè)計 2019年3期
關(guān)鍵詞:數(shù)據(jù)庫系統(tǒng)

王磊,孟祥武,李平

WEB開發(fā)中數(shù)據(jù)庫連接池的使用技巧

王磊,孟祥武,李平

(煙臺海港信息通信有限公司,山東煙臺, 264000)

本文結(jié)合自己在煙臺港生產(chǎn)管理系統(tǒng)中多年的軟件開發(fā)經(jīng)驗,創(chuàng)造性的提出一種性能更加優(yōu)異的數(shù)據(jù)庫連接池技術(shù),大大提高了港口業(yè)務(wù)系統(tǒng)海量數(shù)據(jù)的訪問性能,具有重要的推廣價值。

Web開發(fā);JSP;數(shù)據(jù)庫連接池

1 引言

隨著信息技術(shù)的進步,B/S結(jié)構(gòu)開發(fā)的各種系統(tǒng)應(yīng)用得愈發(fā)廣泛,港口很多系統(tǒng)都使用B/S結(jié)構(gòu)進行WEB開發(fā)的,而這其中如何連接數(shù)據(jù)庫便成為無法繞開的問題。傳統(tǒng)的JDBC連接方式固然應(yīng)用簡單,但在面對海量的數(shù)據(jù)訪問要求時,無論在資源配置還是反應(yīng)時間上都顯得力不從心,于是表現(xiàn)更加優(yōu)異的數(shù)據(jù)庫連接池技術(shù)便成為非常有利的選擇。

2 問題的提出

連接池基本的思想是在系統(tǒng)初始化的時候,將數(shù)據(jù)庫連接作為對象存儲在內(nèi)存中,當(dāng)用戶需要訪問數(shù)據(jù)庫時,并非建立一個新的連接,而是從連接池中取出一個已建立的空閑連接對象。使用完畢后,用戶也并非將連接關(guān)閉,而是將連接放回連接池中,以供下一個請求訪問使用。而連接的建立、斷開都由連接池自身來管理。同時,還可以通過設(shè)置連接池的參數(shù)來控制連接池中的初始連接數(shù)、連接的上下限數(shù)以及每個連接的最大使用次數(shù)、最大空閑時間等等。也可以通過其自身的管理機制來監(jiān)視數(shù)據(jù)庫連接的數(shù)量、使用情況等。

3 問題的原因與解決方法

為了更好的理解和使用數(shù)據(jù)庫連接池,我們可以嘗試封裝一個數(shù)據(jù)庫連接池類,并在開發(fā)過程中調(diào)用它,這樣我們更加靈活的掌握數(shù)據(jù)庫連接池技術(shù)。關(guān)鍵代碼如下:

public synchronized void createPool() throws Exception {

// 確保連接池沒有創(chuàng)建

// 如果連接池己經(jīng)創(chuàng)建了,保存連接的向量 connections 不會為空

if (connections != null) {

return; // 如果己經(jīng)創(chuàng)建,則返回

}

// 實例化 JDBC Driver 中指定的驅(qū)動類實例

Driver driver = (Driver) (Class.forName(this.jdbcDriver).newInstance());

DriverManager.registerDriver(driver); // 注冊 JDBC 驅(qū)動程序

// 創(chuàng)建保存連接的向量 , 初始時有 0 個元素

connections = new Vector();

// 根據(jù) initialConnections 中設(shè)置的值,創(chuàng)建連接。

createConnections(this.initialConnections);

System.out.println("create pool");

}

然后創(chuàng)建由 numConnections 指定數(shù)目的數(shù)據(jù)庫連接,并把這些連接放入 connections 向量中。

private void createConnections(int numConnections) throws SQLException {

// 循環(huán)創(chuàng)建指定數(shù)目的數(shù)據(jù)庫連接

for (int x = 0; x < numConnections; x++) {

System.out.println(this.connections.size() + "," + this.maxConnections);

if (this.maxConnections > 0 && this.connections.size() >= this.maxConnections) {

System.out.println("連接數(shù)己經(jīng)達到最大");

break;

}

try {

connections.addElement(new PooledConnection(newConnection()));

} catch (SQLException e) {

System.out.println(" 創(chuàng)建數(shù)據(jù)庫連接失??! " + e.getMessage());

throw new SQLException();

}

System.out.println(" 數(shù)據(jù)庫連接己創(chuàng)建 ......");

}

}

創(chuàng)建一個新的數(shù)據(jù)庫連接并通過調(diào)用 getFreeConnection() 函數(shù)返回一個可用的數(shù)據(jù)庫連接,使用完畢關(guān)閉連接。

再創(chuàng)建一個DBManager來對連接池進行相應(yīng)的控制。關(guān)鍵代碼如下:

public DBManager() {

if (inst != null)

return;

// TODO Auto-generated constructor stub

String connStr = String.format("jdbc:mysql://%s:%d/%s", Config.getInstance().mysqlHost, Config.getInstance().mysqlPort,

Config.getInstance().mysqlDB);

connectionPool = new ConnectionPool("com.mysql.jdbc.Driver", connStr, Config.getInstance().mysqlUser, Config.getInstance().mysqlPassword);

try {

connectionPool.createPool();

inst = this;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static PooledConnection getConnection() {

if (inst == null)

new DBManager();

try {

conn = connectionPool.getConnection();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return conn;

}

這樣就完成了一個數(shù)據(jù)庫連接池類的封裝,我們可以在程序中加以調(diào)用,滿足所需要的數(shù)據(jù)庫連接要求。

4 結(jié)束語:

B/S結(jié)構(gòu)系統(tǒng)開發(fā)的過程中,數(shù)據(jù)庫的連接效率是非常重要的技術(shù)指標(biāo),在工作與學(xué)習(xí)的過程中不斷的研究與使用,會極大地提高自己的開發(fā)水準(zhǔn),滿足用戶不斷提高的要求與體驗。

[1] 劉曉華、周慧貞.JSP開發(fā)應(yīng)用詳解. 北京:電子工業(yè)出版社

[2] Stephens.數(shù)據(jù)庫設(shè)計. 北京:機械工業(yè)出版社

[3] 趙松濤. Oracle 9i中文版基礎(chǔ)培訓(xùn)教程. 北京:人民郵電出版社.

[4] 楊瑤.新課程研究(下旬刊)基于Java的Web數(shù)據(jù)庫連接池技術(shù)研究.2008

[5] 周彩蘭,陳才賢.武漢理工大學(xué)學(xué)報(信息與管理工程版) 2004

Application skills of database connection pool in WEB development

Wang Lei,Meng,Xiangwu,Li Ping

(Yantai SeaPort Information Communication Co., Ltd. , Yantai 264000, China)

Combining with many years of software development experience in Yantai Port production management system, this paper creatively proposes a database connection pool technology with better performance, which greatly improves the access performance of massive data in port business system and has important popularization value.

Web development JSP database connection pool

10.19551/j.cnki.issn1672-9129.2019.03.007

TP311.10

A

1672-9129(2019)03-0021-03

王磊(1972-),男,主要研究方向或從事的工作:港口生產(chǎn)系統(tǒng)管理及推廣應(yīng)用。E-mail:bianjibu20080808@163.com

猜你喜歡
數(shù)據(jù)庫系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數(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
主站蜘蛛池模板: 国产精品永久免费嫩草研究院| 精品久久香蕉国产线看观看gif| 啊嗯不日本网站| 三上悠亚在线精品二区| 污污网站在线观看| www.91中文字幕| 国产无码制服丝袜| 中文字幕 91| 国产内射在线观看| 黄色网页在线观看| 久久不卡精品| 成年人免费国产视频| 国产日韩精品欧美一区喷| 日本在线国产| 伊在人亚洲香蕉精品播放 | 国产欧美日韩视频怡春院| 99视频精品全国免费品| 波多野结衣第一页| 亚洲日本中文字幕天堂网| 午夜毛片福利| 色成人综合| 国产亚洲精品在天天在线麻豆 | 国产福利在线观看精品| 欧美一级视频免费| 亚洲三级色| 免费在线色| 亚洲中文字幕无码mv| 国产福利一区视频| 国产福利影院在线观看| 亚洲欧洲综合| 亚洲国产日韩视频观看| 免费观看亚洲人成网站| 中日韩一区二区三区中文免费视频| 91在线日韩在线播放| 日本午夜在线视频| 国产人免费人成免费视频| a毛片免费观看| 一级一毛片a级毛片| 亚洲综合片| 久久精品人人做人人爽97| 国产自在线播放| 99热国产在线精品99| 美臀人妻中出中文字幕在线| 中文字幕欧美日韩高清| 丁香六月综合网| 久久综合九九亚洲一区| 国产一区二区人大臿蕉香蕉| 在线看片免费人成视久网下载| 99久久精品国产综合婷婷| 国产成人精品一区二区| 怡春院欧美一区二区三区免费| 欧美三級片黃色三級片黃色1| 91久久国产热精品免费| 精品99在线观看| 日韩福利在线视频| 国产精品尤物铁牛tv| 日本在线亚洲| 一本一本大道香蕉久在线播放| 中文字幕在线看视频一区二区三区| 97青草最新免费精品视频| 亚洲91在线精品| 97se亚洲综合在线天天| 亚洲毛片网站| 久久人人爽人人爽人人片aV东京热 | 亚洲三级色| 人妻一区二区三区无码精品一区 | 2021国产精品自产拍在线观看| 19国产精品麻豆免费观看| 国产精品刺激对白在线| 国产美女在线免费观看| 国产成人精品高清不卡在线| 日韩av手机在线| 亚洲男人的天堂在线观看| 日本免费一区视频| 国产欧美在线观看精品一区污| 国产一级二级三级毛片| AⅤ色综合久久天堂AV色综合| 操操操综合网| 制服丝袜国产精品| 亚洲欧美另类中文字幕| 国产微拍一区| 国产精品女人呻吟在线观看|