自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談幾種如何減少JDBC連接池開(kāi)銷的方法

開(kāi)發(fā) 后端
基于JDBC連接池的應(yīng)用中幾乎全是圍繞Connection接口展開(kāi)的,必須創(chuàng)建一個(gè)連接Connection,此連接相當(dāng)于應(yīng)用和數(shù)據(jù)庫(kù)之間的一個(gè)通道,并且它還是事務(wù)的邊界,只有通過(guò)同一個(gè)Connection執(zhí)行的SQL語(yǔ)句才能組成一個(gè)事務(wù)。

在一個(gè)服務(wù)器的應(yīng)用中,會(huì)處理來(lái)自多個(gè)不同用戶的請(qǐng)求,并且必須為每一個(gè)用戶保持并打開(kāi)一個(gè)鏈接(防止事務(wù)的崩潰),由于創(chuàng)建一個(gè)Connection的盡管實(shí)現(xiàn)起來(lái)簡(jiǎn)單,但對(duì)于大流量的服務(wù)器應(yīng)用來(lái)說(shuō)卻要花費(fèi)大量的時(shí)間。

為了使JDBC連接池連接的時(shí)間盡可能的少

解決方法有以下幾種:

一:為每個(gè)訪問(wèn)數(shù)據(jù)的servlet和jsp頁(yè)面維護(hù)一個(gè)Connection,并保持在一個(gè)實(shí)例變量中,直到應(yīng)用關(guān)閉,但這樣會(huì)導(dǎo)致大量的多線程問(wèn)題。另外對(duì)于數(shù)據(jù)庫(kù)能保持的連接數(shù)代價(jià)時(shí)昂貴的,商業(yè)數(shù)據(jù)指定價(jià)格一部分時(shí)基于同時(shí)打開(kāi)的連接數(shù)的。

二:***的做法就是使用一個(gè)JDBC連接池。其優(yōu)點(diǎn)有以下幾點(diǎn):

1:創(chuàng)建連接的時(shí)間縮短,因?yàn)樵诔刂墟溄訒r(shí)可以重用的。

2:解決了多線程的問(wèn)題。

3:連接池可以指定Connection的***連接數(shù),使得每一個(gè)鏈接得到***效的利用。

另外:由于所有的用戶使用的時(shí)同樣的Connection對(duì)象,因此不能依賴數(shù)據(jù)庫(kù)引擎著個(gè)的限制用戶對(duì)保護(hù)資源的訪問(wèn),因此要為不同的用戶角色組使用不同的連接池,為不同的數(shù)據(jù)帳戶來(lái)創(chuàng)建不同的Connection對(duì)象。

在jdk文檔中明確說(shuō)明了:DataSource是一個(gè)接口,作為DriverManager工具的替代項(xiàng),DataSource對(duì)象是獲取連接的***方法。

實(shí)現(xiàn)此接口的類可以提供JDBC連接池功能。

PooledConnection類,該類為連接池管理提供鉤子(hook)的對(duì)象。PooledConnection對(duì)象表示到數(shù)據(jù)源的物理連接,當(dāng)應(yīng)用程序調(diào)用DataSource.getConnection方法時(shí),它取回Connection對(duì)象。如果連接池已完成,則該Connection對(duì)象實(shí)際上是到PooledConnection對(duì)象的句柄,這是一個(gè)物理連接。

需要注意的是當(dāng)應(yīng)用調(diào)用close()方法時(shí),并不是關(guān)閉數(shù)據(jù)庫(kù)鏈接,而是通知其鏈接在池中已不再使用,然后DataSource會(huì)將該P(yáng)ooledConnection返回至JDBC連接池。

基于JDBC的應(yīng)用中幾乎全是圍繞Connection接口展開(kāi)的,必須創(chuàng)建一個(gè)連接Connection,此連接相當(dāng)于應(yīng)用和數(shù)據(jù)庫(kù)之間的一個(gè)通道,并且它還是事務(wù)的邊界,只有通過(guò)同一個(gè)Connection執(zhí)行的SQL語(yǔ)句才能組成一個(gè)事務(wù)。

在一個(gè)服務(wù)器的應(yīng)用中,會(huì)處理來(lái)自多個(gè)不同用戶的請(qǐng)求,并且必須為每一個(gè)用戶保持并打開(kāi)一個(gè)鏈接(防止事務(wù)的崩潰),由于創(chuàng)建一個(gè)Connection的盡管實(shí)現(xiàn)起來(lái)簡(jiǎn)單,但對(duì)于大流量的服務(wù)器應(yīng)用來(lái)說(shuō)卻要花費(fèi)大量的時(shí)間。

連接池流程圖

【編輯推薦】

  1. 在Weblogic中實(shí)現(xiàn)JDBC的功能
  2. 詳解JDBC與Hibernate區(qū)別
  3. JDBC連接MySQL數(shù)據(jù)庫(kù)關(guān)鍵四步
  4. 五步精通SQL Server 2000 JDBC驅(qū)動(dòng)安裝與測(cè)試
  5. 詳解JDBC驅(qū)動(dòng)的四種類型
  6. JDBC存儲(chǔ)過(guò)程在Oracle中的獲取結(jié)果集
責(zé)任編輯:彭凡 來(lái)源: 人民郵電出版社
相關(guān)推薦

2009-07-17 13:32:49

JDBC數(shù)據(jù)庫(kù)

2019-12-30 15:30:13

連接池請(qǐng)求PHP

2009-07-09 17:36:44

JDBC連接池配置

2010-10-26 16:15:33

連接Oracle數(shù)據(jù)庫(kù)

2011-07-04 10:17:38

JDBC

2009-07-17 17:07:17

JDBC教程

2009-07-21 11:05:49

關(guān)閉ADO.NET連接

2009-07-03 17:37:54

JSP數(shù)據(jù)庫(kù)

2009-07-22 13:49:40

JSP JDBC

2009-07-21 17:41:58

JDBC數(shù)據(jù)源

2010-11-08 16:46:57

2009-07-17 17:41:25

JDBC連接SQL S

2010-01-05 10:11:23

ADO.NET連接池

2021-07-07 14:20:15

高并發(fā)服務(wù)數(shù)據(jù)庫(kù)

2009-09-22 14:57:34

Hibernate d

2011-06-01 13:54:10

MySQL

2010-12-10 16:19:04

JDBC數(shù)據(jù)庫(kù)連接池DDLSQLJ存儲(chǔ)過(guò)程

2010-06-25 10:36:27

Java連接池

2009-06-17 09:59:46

Hibernate 連

2020-02-03 15:15:27

Druid連接池性能超出競(jìng)品
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)