国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JDBC的數據庫連接池技術研究與應用

2019-11-18 12:37:37
字體:
來源:轉載
供稿:網友

   摘 要 本文介紹了java訪問數據庫的原理及其存在的問題,提出了解決辦法-數據庫連接池,并對其要害問題進行了分析,構建了一個簡便易用的連接池并結合當前熱門技術Servlet說明了其如何在開發時使用。

  要害詞 JDBC,jsp/Servlet,數據庫連接池,多數據庫服務器和多用戶,多線程

  引言

  近年來,隨著Internet/Intranet建網技術的飛速發展和在世界范圍內的迅速普及,計算機

  應用程序已從傳統的桌面應用轉到Web應用。基于B/S(Browser/Server)架構的3層開發模式逐漸取代C/S(Client/Server)架構的開發模式,成為開發企業級應用和電子商務普遍采用的技術。在Web應用開發的早期,主要使用的技術是CGI﹑aspphp等。之后,Sun公司推出了基于Java語言的Servlet+Jsp+JavaBean技術。相比傳統的開發技術,它具有跨平臺﹑安全﹑有效﹑可移植等特性,這使其更便于使用和開發。

  Java應用程序訪問數據庫的基本原理

  在Java語言中,JDBC(Java DataBase Connection)是應用程序與數據庫溝通的橋梁,

  即Java語言通過JDBC技術訪問數據庫。JDBC是一種“開放”的方案,它為數據庫應用開發人員﹑數據庫前臺工具開發人員提供了一種標準的應用程序設計接口,使開發人員可以用純Java語言編寫完整的數據庫應用程序。JDBC提供兩種API,分別是面向開發人員的API和面向底層的JDBC驅動程序API,底層主要通過直接的JDBC驅動和JDBC-ODBC橋驅動實現與數據庫的連接。

  一般來說,Java應用程序訪問數據庫的過程(如圖1所示)是:

  ①裝載數據庫驅動程序;

  ②通過JDBC建立數據庫連接;

  ③訪問數據庫,執行SQL語句;

  ④斷開數據庫連接。

JDBC的數據庫連接池技術研究與應用(圖一)
圖1 Java數據庫訪問機制

  JDBC作為一種數據庫訪問技術,具有簡單易用的優點。但使用這種模式進行Web應用

  程序開發,存在很多問題:首先,每一次Web請求都要建立一次數據庫連接。建立連接是一個費時的活動,每次都得花費0.05s~1s的時間,而且系統還要分配內存資源。這個時間對于一次或幾次數據庫操作,或許感覺不出系統有多大的開銷。可是對于現在的Web應用,尤其是大型電子商務網站,同時有幾百人甚至幾千人在線是很正常的事。在這種情況下,頻繁的進行數據庫連接操作勢必占用很多的系統資源,網站的響應速度必定下降,嚴重的甚至會造成服務器的崩潰。不是危言聳聽,這就是制約某些電子商務網站發展的技術瓶頸問題。其次,對于每一次數據庫連接,使用完后都得斷開。否則,假如程序出現異常而未能關閉,將會導致數據庫系統中的內存泄漏,最終將不得不重啟數據庫。還有,這種開發不能控制被創建的連接對象數,系統資源會被毫無顧及的分配出去,如連接過多,也可能導致內存泄漏,服務器崩潰。

  數據庫連接池(connection pool)的工作原理

  1、基本概念及原理

  由上面的分析可以看出,問題的根源就在于對數據庫連接資源的低效治理。我們知道,

  對于共享資源,有一個很聞名的設計模式:資源池(Resource Pool)。該模式正是為了解決資源的頻繁分配﹑釋放所造成的問題。為解決上述問題,可以采用數據庫連接池技術。數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的治理機制監視數據庫的連接的數量﹑使用情況,為系統開發﹑測試及性能調整提供依據。連接池的基本工作原理見下圖2。

JDBC的數據庫連接池技術研究與應用(圖二)
圖2 連接池的基本工作原理

  2、服務器自帶的連接池

  JDBC的API中沒有提供連接池的方法。一些大型的WEB應用服務器如BEA的WebLogic和IBM的WebSphere等提供了連接池的機制,但是必須有其第三方的專用類方法支持連接池的用法。

  連接池要害問題分析

  1、并發問題

  為了使連接治理服務具有最大的通用性,必須考慮多線程環境,即并發問題。這個問題相對比較好解決,因為Java語言自身提供了對并發治理的支持,使用synchronized要害字即可確保線程是同步的。使用方法為直接在類方法前面加上synchronized要害字,如:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江山市| 洪雅县| 绥江县| 建阳市| 德格县| 四子王旗| 旺苍县| 阜南县| 樟树市| 蕲春县| 视频| 将乐县| 佛坪县| 河津市| 益阳市| 合阳县| 江川县| 清水县| 庆城县| 凯里市| 麻栗坡县| 泰州市| 阿坝| 萝北县| 江都市| 五台县| 塔城市| 蕲春县| 兴海县| 乐平市| 庆城县| 华宁县| 宜川县| 宽城| 邢台县| 北辰区| 荣昌县| 巫山县| 昆山市| 六枝特区| 正镶白旗|