Java數(shù)據(jù)庫連接技術的探討與實踐

上傳人:冷*** 文檔編號:20093112 上傳時間:2021-02-07 格式:DOCX 頁數(shù):3 大?。?5.41KB
收藏 版權申訴 舉報 下載
Java數(shù)據(jù)庫連接技術的探討與實踐_第1頁
第1頁 / 共3頁
Java數(shù)據(jù)庫連接技術的探討與實踐_第2頁
第2頁 / 共3頁
Java數(shù)據(jù)庫連接技術的探討與實踐_第3頁
第3頁 / 共3頁

最后一頁預覽完了!喜歡就下載吧,查找使用更方便

25 積分

下載資源

資源描述:

《Java數(shù)據(jù)庫連接技術的探討與實踐》由會員分享,可在線閱讀,更多相關《Java數(shù)據(jù)庫連接技術的探討與實踐(3頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、Java數(shù)據(jù)庫連接技術的探討與實踐 摘 要:本文主要對JSP與Web數(shù)據(jù)庫連接的方法進行分析比較,并基于Tomcat用JavaBean構建了一個可重用的數(shù)據(jù)庫連接池。同時也討論了在多種異構數(shù)據(jù)庫下,如何進行多數(shù)據(jù)庫的訪問,并分析了使用Java技術下的各種方法進行多種異構數(shù)據(jù)庫下的數(shù)據(jù)交換。 關鍵詞:數(shù)據(jù)庫;JDBC;連接池 1 引言   隨著Web技術的發(fā)展和電子商務時代的到來,人們希望建立能夠根據(jù)需求生成頁面、提供用戶交互、提供后臺數(shù)據(jù)庫處理等服務的動態(tài)網(wǎng)站。在此需求下,以Java技術為核心的JSP技術應運而生。在使用JSP技術開發(fā)基于數(shù)據(jù)庫的動態(tài)Web應用程序

2、中,與數(shù)據(jù)庫的交互已成為一個重要組成部分。與數(shù)據(jù)庫的交互過程中,數(shù)據(jù)庫連接是一種重要的資源,數(shù)據(jù)庫連接的管理性能會影響到整個應用程序的可伸縮性和健壯性?,F(xiàn)在的各種數(shù)據(jù)庫應用,由于技術、歷史等因素,往往在一個大的部門中并存有多個應用系統(tǒng)。這些應用系統(tǒng)可能分散于不同的網(wǎng)絡節(jié)點、基于不同的操作平臺、使用不同的數(shù)據(jù)庫管理系統(tǒng),且各子系統(tǒng)封閉運行,自成一體,這樣給不同部門的信息資源共享帶來困難。如何在不改變原來系統(tǒng)的內部信息的前提下,完成不同數(shù)據(jù)庫系統(tǒng)間的數(shù)據(jù)訪問和交換是值得研究的問題。 近年來,隨著Internet/Intranet建網(wǎng)技術的飛速發(fā)展和在世界范圍內的迅速普及,計算機應用程序已從傳統(tǒng)的桌

3、面應用轉到Web應用。基于B/S架構的三層開發(fā)模式逐漸取代C/S架構的開發(fā)模式,成為開發(fā)企業(yè)級應用和電子商務普遍采用的技術。在Web應用開發(fā)的早期,主要使用的技術是CGI、ASP、PHP等。之后,Sun公司推出了基于Java語言的servlet+Jsp+JavaBean技術。相比傳統(tǒng)的開發(fā)技術,它具有跨平臺、安全、有效、可移植等特性,這使其更便于使用和開發(fā)。 2 Java中傳統(tǒng)的數(shù)據(jù)庫連接技術   在Java語言中,JDBC是應用程序與數(shù)據(jù)庫溝通的橋梁,JDBC是一種“開放”的方案,它為數(shù)據(jù)庫應用開發(fā)人員與數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標準的應用程序設計接口,使開發(fā)人員可以用純Java語言編

4、寫完整的數(shù)據(jù)庫應用程序。JDBC提供兩種API,分別是面向開發(fā)人員的API和面向底層的JDBC驅動程序API,底層主要通過直接的JDBC驅動和JDBC-ODBC橋驅動實現(xiàn)與數(shù)據(jù)庫的連接。一般來說,JDBC提供了一種基準.據(jù)此可以構建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應用程序。   傳統(tǒng)的基于JDBC的數(shù)據(jù)庫訪問方式一般有四種:JDBC—ODBC橋接驅動程序、本地 API部分Java驅動程序、數(shù)據(jù)庫中間件的純Java驅動程序、純Java驅動程序。 2.1 JDBC—ODBC橋接驅動程序   這類驅動將JDBC API作為到另一個數(shù)據(jù)訪問API的映射來實現(xiàn)。這類驅動程序通常依賴本地

5、庫,可移植性受到限制。JDBC—ODBC橋是將JDBC操作轉換為ODBC操作來實現(xiàn)JDBC操作,ODBC是目前應用最為廣泛的數(shù)據(jù)庫訪問API,因此通過JDBC—ODBC橋幾乎可以連接任何一種數(shù)據(jù)庫,但是需要客戶端預裝ODBC驅動和配置ODBC數(shù)據(jù)源。執(zhí)行效率低,跨平臺性差,常用于Windows平臺下。 2.2 本地API部分Java驅動程序   這類驅動把對JDBC的調用轉換成本地的API調用,通過數(shù)據(jù)庫請求把結果返回給JDBC驅動器,JDBC驅動器再將結果格式轉化為JDBC標準形式,并將結果返回給客戶端。這種驅動執(zhí)行效率比第一種有所提高,但仍然需要在客戶端加載數(shù)據(jù)庫廠商提供的代碼庫。 2.3

6、 數(shù)據(jù)庫中間件的純Java驅動程序   這種驅動程序將JDBC調用翻譯成與數(shù)據(jù)庫無關的網(wǎng)絡協(xié)議,利用中間件將客戶端連接到不同類型的數(shù)據(jù)庫系統(tǒng)。使用這種驅動程序不需要在客戶端安裝其他軟件,并且能訪問多種數(shù)據(jù)庫。因此,這種驅動程序是與平臺無關的,并且與用戶訪問的數(shù)據(jù)庫無關。特別適合在多層結構應用軟件體系結構中使用。 2.4 純Java驅動程序   這類驅動也是完全由Java實現(xiàn)的,不需要加載任何軟件或驅動,也不需要任何中介軟件,直接把JDBC調用轉換為符合相關數(shù)據(jù)庫系統(tǒng)規(guī)范的請求,與數(shù)據(jù)庫服務器通信。這種驅動的執(zhí)行效率是非常高,與平臺無關,但與特定的數(shù)據(jù)庫有關。   利用JDBC訪問數(shù)據(jù)庫的過程主

7、要有以下四步:①裝載數(shù)據(jù)庫驅動程序。②訪問數(shù)據(jù)庫,執(zhí)行SQL語句。③處理數(shù)據(jù)庫返回結果。④斷開數(shù)據(jù)庫連接。   JDBC作為一種數(shù)據(jù)庫訪問技術,具有簡單易用的優(yōu)點。但使用這種模式進行Web應用程序開發(fā),存在很多問題:首先,每一次Web請求都要建立一次數(shù)據(jù)庫連接。建立連接是一個費時的活動,每次都得花費0.05s~1s的時間,而且系統(tǒng)還要分配內存資源。這個時間對于一次或幾次數(shù)據(jù)庫操作,或許感覺不出系統(tǒng)有多大的開銷。可是對于現(xiàn)在的Web應用,尤其是大型電子商務網(wǎng)站,同時有幾百人甚至幾千人在線是很正常的事。在這種情況下,頻繁的進行數(shù)據(jù)庫連接操作勢必占用很多的系統(tǒng)資源,網(wǎng)站的響應速度必定下降,嚴重的甚至

8、會造成服務器的崩潰。其次,對于每一次數(shù)據(jù)庫連接,使用完后都得斷開。否則,如果程序出現(xiàn)異常而未能關閉,將會導致數(shù)據(jù)庫系統(tǒng)中的內存泄漏,最終將不得不重啟數(shù)據(jù)庫。還有,這種開發(fā)不能控制被創(chuàng)建的連接對象數(shù),系統(tǒng)資源會被毫無顧及的分配出去,如連接過多,也可能導致內存泄漏,服務器崩潰。 3 數(shù)據(jù)庫連接池技術 3.1 數(shù)據(jù)庫連接池的基本原理   為解決上述問題,可以采用數(shù)據(jù)庫連接池技術。數(shù)據(jù)庫連接池的基本思想就是為數(shù)據(jù)庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數(shù)量的連接,當需要建立數(shù)據(jù)庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設定連接池最大連接數(shù)來防止系統(tǒng)無盡的與數(shù)據(jù)庫連

9、接。更為重要的是我們可以通過連接池的管理機制監(jiān)視數(shù)據(jù)庫的連接的數(shù)量與使用情況,為系統(tǒng)開發(fā)測試及性能調整提供依據(jù)。 3.2 用JavaBean實現(xiàn)連接池的訪問   目前的JDBC驅動中基本都包含了DataSource接口的實現(xiàn),但不少都沒有包含基于DataSource的數(shù)據(jù)庫連接池的實現(xiàn),如SQLServer 2000的JDBC驅動中就沒有這種數(shù)據(jù)庫連接池。但在當前的主流應用服務器上都包含了基于DataSource的數(shù)據(jù)庫連接池的實現(xiàn)。如:Weblogic、Websphere、Tomcat等。本文以Tomcat5.5+Sql Server 2000為平臺來研究如何用JavaBean實現(xiàn)Sql S

10、erver 2000數(shù)據(jù)庫連接池。   首先將Sql Server 2000的JDBC的驅動文件(jar)放到Tomcat的common/lib目錄下,然后配置Tomcat。在Tomcat的serverv.xml和content.xml中配置如下示例代碼: 4 多數(shù)據(jù)庫系統(tǒng)的Java解決方案   眾所周知,Java技術是全新的編程技術,它具有平臺無關性、面向對象、安全、高性能、分布式,多線程等特點,使Java成為當前最為類型的編程語言和平臺。對于多數(shù)據(jù)庫系統(tǒng)聯(lián)合訪問和數(shù)據(jù)交換,使用Java技術可以解決不同的操作系統(tǒng)和不同的數(shù)據(jù)庫管理系統(tǒng)之間的數(shù)據(jù)處理。 4.1 使用Java Bean技術實

11、現(xiàn)多數(shù)據(jù)庫的訪問 對于基于Web的多數(shù)據(jù)庫訪問,Java Bean技術可以提供一個比較強大、靈活的解決方案。首先構造多個Java Bean,在這些模型組件里,我們要處理數(shù)據(jù)庫的連接、定義,查找、插入、刪除操作等方法,并要實現(xiàn)多線程,然后構造編寫調用Java Bean的Servlet,這樣可以實現(xiàn)對多數(shù)據(jù)庫的訪問。Java Bean的結構如下:  public class DatabaseConnectBean   {  定義數(shù)據(jù)庫連接的成員; 定義連接的方法{ }     }   在Servlet中調用Java Bean的過程為: public class UsedatabaseBea

12、n extends HttpServlet{  public void doGet(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{  …… }  public void doPost(httpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{//創(chuàng)建Java Bean的對象  DatabaseConnectBean conBean=new DatabaseCon

13、nectBean(……); }}  從上述的過程和語句我們可以發(fā)現(xiàn),使用Servlet技術可以訪問各種不同類型的數(shù)據(jù)庫,但是使用Servlet技術下的Java Bean技術要保證數(shù)據(jù)庫數(shù)據(jù)的一致性,應在Java Bean中我們可以使用Java的線程技術中的同步等方法來實現(xiàn)對數(shù)據(jù)庫的連接、操作,但這樣將加大程序員的編程實現(xiàn)。所以使用Servlet技術下的Java Bean能同時對多個數(shù)據(jù)庫實體的訪問,但實現(xiàn)起來不方便。 4.2 使用EJB技術實現(xiàn)多數(shù)據(jù)庫的訪問   對于多數(shù)據(jù)庫訪問,EJB技術可以提供一個比較強大、靈活的解決方案。首先構造多個會話Bean,在這些模型組件里,我們要處理數(shù)據(jù)庫的連接

14、、定義,查找、插入、刪除操作等方法,然后創(chuàng)建和部署EJB,這樣可以實現(xiàn)對多數(shù)據(jù)庫的訪問。會話Bean的結構如下: public class DatabaseConnectSessionBean implements javax.ejb.SessionBean{  public int checkUserLogin(String userid,String password)    throw NameingException,SQLException {  ……  //得到初始上下文  InitialContext ic=new InitialContext();  //獲得數(shù)據(jù)源    Da

15、taSource ds=(DataSource) ic.lookup(數(shù)據(jù)庫JDNI名字);    //建立數(shù)據(jù)庫連接    Connection conn=null;    try{    conn ds.getConnection(數(shù)據(jù)庫用戶名,數(shù)據(jù)庫用戶密碼);      //進行數(shù)據(jù)庫數(shù)據(jù)的操作  } }}  從上述的過程和語句我們可以發(fā)現(xiàn),使用EJB技術可以訪問各種不同類型的數(shù)據(jù)庫,而且支持數(shù)據(jù)庫的“事務”的機制,這樣使對數(shù)據(jù)的處理能夠保證數(shù)據(jù)的一致性。所以使用EJB技術能實現(xiàn)對多個數(shù)據(jù)庫的訪問,而且安全性、持續(xù)、事物、并行性和資源的管理由容器來管理,這樣使編程具有簡單性。 5 結束

16、語   在使用JDBC進行與數(shù)據(jù)庫有關的應用開發(fā)中,數(shù)據(jù)庫連接的管理是一個難點。很多時候,連接的混亂管理所造成的系統(tǒng)資源開銷過大成為制約大型企業(yè)級應用效率的瓶頸。對于眾多用戶訪問的Web應用,采用數(shù)據(jù)庫連接技術的系統(tǒng)在效率和穩(wěn)定性上比采用傳統(tǒng)的其他方式的系統(tǒng)要好很多。本文闡述了使用JDBC訪問數(shù)據(jù)庫的技術?討論了基于連接池技術的數(shù)據(jù)庫連接管理的關鍵問題并給出了一個實現(xiàn)模型。文章所給出的是連接池管理程序的一種基本模式,為提高系統(tǒng)的整體性能,在此基礎上還可以進行很多有意義的擴展。   EJB技術是解決異構數(shù)據(jù)庫環(huán)境下的多數(shù)據(jù)庫信息處理一種有效的方法。它不但可以解決數(shù)據(jù)庫異構的問題,更是解決操作系統(tǒng)異構的最有效的方法。這樣可以達到不同信息資源的共享及信息的綜合統(tǒng)計查詢,這也是企事業(yè)單位迫切要解決的實際問題。我們認為EJB技術能更好的解決異構數(shù)據(jù)庫環(huán)境下的電子商務和電子政務方面的信息交換問題。 參考文獻: 【1】崔瑩峰,王洪.數(shù)據(jù)庫連接池技術及其在Web系統(tǒng)開發(fā)中的應用.鐵路計算機應用,2005(02) 【2】周彩蘭,陳才賢.基于Java的Web數(shù)據(jù)庫連接池高效管理策略.武漢理工大學學報,2004(05) 【3】羅榮,唐學兵;基于JDBC的數(shù)據(jù)庫連接池的設計與實現(xiàn).計算機工程,2004(09)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!