《基于JAVA語(yǔ)言的電子網(wǎng)站數(shù)據(jù)庫(kù)連接分析》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于JAVA語(yǔ)言的電子網(wǎng)站數(shù)據(jù)庫(kù)連接分析(2頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于JAVA語(yǔ)言的電子網(wǎng)站數(shù)據(jù)庫(kù)連接分析
摘 要:本文從JSP技術(shù)與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的原理入手,通過分析java數(shù)據(jù)庫(kù)連接提供的完備數(shù)據(jù)庫(kù)操作方法接口,實(shí)現(xiàn)基于JSP平臺(tái)的電子商務(wù)網(wǎng)站的數(shù)據(jù)庫(kù)連接,為網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的遠(yuǎn)程維護(hù)進(jìn)行了有益的探索。
關(guān)鍵詞:JAVA;電子網(wǎng)站;數(shù)據(jù)庫(kù)
引言 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,動(dòng)態(tài)網(wǎng)站成為了主流,而動(dòng)態(tài)網(wǎng)站的源泉就是網(wǎng)絡(luò)數(shù)據(jù)庫(kù),隨之而帶來的問題就是網(wǎng)絡(luò)數(shù)據(jù)的維護(hù),目前主要是本地維護(hù)。隨著信息技術(shù)的發(fā)展,遠(yuǎn)程維護(hù)漸漸體現(xiàn)出它的優(yōu)勢(shì)與用途。Java服務(wù)器網(wǎng)頁(yè)(Java Server Page)是九十代末出現(xiàn)的一項(xiàng)新技術(shù),該技術(shù)在國(guó)外網(wǎng)絡(luò)應(yīng)用程
2、序的開發(fā)中非常普遍,在國(guó)內(nèi),雖然目前不是主流開發(fā)技術(shù),但隨著JSP強(qiáng)大用途的體現(xiàn),越來越多的網(wǎng)站開始利用JSP進(jìn)行動(dòng)態(tài)網(wǎng)絡(luò)的開發(fā)。 1 JSP技術(shù)簡(jiǎn)介 JSP是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),和我們熟悉的ASP有些類似,是在傳統(tǒng)的HTML網(wǎng)頁(yè)文件中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag)而形成JSP文件(*.jsp)。其主要的優(yōu)勢(shì)有:(1)第一次編寫后,在任何情況下都可以運(yùn)行,除了系統(tǒng)之外,代碼不用做任何的修改;(2)強(qiáng)大的可伸縮性。一方面一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,另一方面可以由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,多臺(tái)Application進(jìn)行事務(wù)處理和消息
3、處理;(3)系統(tǒng)的兼容好,JSP的開發(fā)基本上可以在所有平臺(tái)上的任意環(huán)境進(jìn)行,也可以在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中進(jìn)行擴(kuò)展,這一點(diǎn)現(xiàn)在的ASP/PHP是不能實(shí)現(xiàn)的。 2 JDBC介紹 JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,它由一組用Java語(yǔ)言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠編寫數(shù)據(jù)庫(kù)應(yīng)用程序。其總體結(jié)構(gòu)圖如圖1所示。通過JDBC,可以很方便向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句,而不必為訪問Sybase數(shù)
4、據(jù)庫(kù)、Informix數(shù)據(jù)庫(kù)以及Oracle數(shù)據(jù)庫(kù)而各自專門寫一個(gè)程序,而只需要利用JDBC API編寫一個(gè)程序就可以了。同時(shí),JDBC與JAVA語(yǔ)言的配合使用,讓程序開發(fā)者不必為不同的平臺(tái)編寫不同的應(yīng)用程序,這上面已經(jīng)敘述過。另外,JDBC還擴(kuò)展了JAVA的功能,可以利用JDBC API和JAVA發(fā)布含有APPLET的網(wǎng)頁(yè),也可以利用JDBC通過INTRANET將某些數(shù)據(jù)信息連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中,而不需要考慮這些數(shù)據(jù)信息是否來自于UNIX、WINDOWS等不同的操作系統(tǒng)。 圖1 JDBC總體結(jié)構(gòu)圖 3 JSP訪問電子網(wǎng)站數(shù)據(jù)庫(kù)分析 3.1 JDBC URL 通過前節(jié)的
5、分析可知,JSP是通過JDBC實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問,JDBC使用數(shù)據(jù)庫(kù)URL來給出數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。換句話說,通過JDBC URL提供數(shù)據(jù)庫(kù)的標(biāo)識(shí),隨后相應(yīng)的驅(qū)動(dòng)程序通過標(biāo)識(shí)識(shí)別相應(yīng)的數(shù)據(jù)庫(kù),并建立相應(yīng)的連接。JDBC URL的標(biāo)準(zhǔn)語(yǔ)法由JDBC、子協(xié)議和子名稱三部分組成,其語(yǔ)法表示如下: jdbc:: 由此可以看出,各部分之間是通過冒號(hào)分割。其中jdbc表示所用的協(xié)議,均為jdbc;為數(shù)據(jù)庫(kù)連接機(jī)制或者驅(qū)動(dòng)程序的名稱,例如:odbc等;第三部分是標(biāo)識(shí)數(shù)據(jù)庫(kù)的方法,不同的子協(xié)議有不同的子名稱,以此來定位數(shù)據(jù)庫(kù),反映不同數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的語(yǔ)法。 3.2 驅(qū)動(dòng)程序的裝載 驅(qū)動(dòng)程序的裝載根據(jù)
6、驅(qū)動(dòng)程序的不同有不同的格式,本文主要分析裝載JDBC驅(qū)動(dòng)的格式。該方式適合已經(jīng)具有特定JDBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)訪問。基本用法是: Class.forName(“jdbc.driver_name”); 對(duì)于不同的數(shù)據(jù)庫(kù),JDBC驅(qū)動(dòng)程序也有所不同。例如: SQL Server橋驅(qū)動(dòng)程序的裝載語(yǔ)法是: <%Class.forName(""com.microsoft.jdbc.sqlserver.SQLServerDriver""); Oracle Jdbc Thin橋驅(qū)動(dòng)程序的裝載語(yǔ)法是: <%Class.forName(“oracle.jdbc.driver.Oracl
7、eDriver”); 而大家所熟悉的mySQL橋驅(qū)動(dòng)程序的裝載語(yǔ)法為: <%Class.forName(“org.git.mm.mysql.Driver”); 另外還有oracle Jdbc OCI橋驅(qū)動(dòng)程序的裝載語(yǔ)法: <%Class.forName(“oracle.jdbc.driver.OracleDriver”); 3.3 數(shù)據(jù)庫(kù)連接的建立 通過驅(qū)動(dòng)程序的裝載后,就可以建立數(shù)據(jù)庫(kù)連接。本文主要分析使用JDBC直接連接數(shù)據(jù)庫(kù)的情況。基本步驟是:一是在servlet、beans等主程序中建立數(shù)據(jù)庫(kù)連接;二是運(yùn)用SQL語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)的讀取、修改等操作;三是斷開數(shù)據(jù)庫(kù)連
8、接。 建立數(shù)據(jù)庫(kù)連接的標(biāo)準(zhǔn)方法是通過DriverManager類,該類控制了所有注冊(cè)的JDBC驅(qū)動(dòng)程序集合。在3.2節(jié)中裝載數(shù)據(jù)庫(kù)驅(qū)動(dòng)的時(shí)候,首先在DriverManager類中進(jìn)行登記,然后根據(jù)JDBC URL的標(biāo)識(shí)選擇相應(yīng)的驅(qū)動(dòng)程序。建立數(shù)據(jù)庫(kù)連接時(shí),主要通過getConnection()方法來實(shí)現(xiàn),其創(chuàng)建連接的語(yǔ)法格式為: Connection Conname=DriverManager.getConnection(url,username,pwd); 語(yǔ)法中的url就是3.1中所介紹的JDBC URL,以此讓DriverManager從登記注冊(cè)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)中找到與URL中指
9、定的數(shù)據(jù)庫(kù)進(jìn)行連接的驅(qū)動(dòng)程序。Username為登錄數(shù)據(jù)庫(kù)的用戶名,pwd為登錄數(shù)據(jù)庫(kù)的密碼。 例如用thin模式,jsp連接Oracle8/8i/9i數(shù)據(jù)庫(kù)的部分語(yǔ)法如下: testoracle.jsp如下: <%Class.forName(""oracle.jdbc.driver.OracleDriver"").newInstance(); String url=""jdbc:oracle:thin:@localhost:1521:orcl""; //orcl為你的數(shù)據(jù)庫(kù)的SID String user=""scott""; Strin
10、g password=""tiger""; Connection conn= DriverManager.getConnection(url,user,password); 3.4數(shù)據(jù)庫(kù)連接關(guān)閉 由于數(shù)據(jù)庫(kù)連接的數(shù)據(jù)是有一定限制的,所以,當(dāng)對(duì)數(shù)據(jù)庫(kù)執(zhí)行完讀取、修改或者保存等操作后,需要及時(shí)釋放連接。實(shí)現(xiàn)代碼是: Btconn.close(); Conn.close(); 4結(jié)束語(yǔ) 本文通過分析基于JAVA語(yǔ)言的電子網(wǎng)站數(shù)據(jù)庫(kù)的連接,掌握運(yùn)用JSP技術(shù)進(jìn)行數(shù)據(jù)庫(kù)連接的原理也方法。使網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的維護(hù)不受地點(diǎn)也時(shí)間的限制,保證了網(wǎng)絡(luò)信息的實(shí)效性與有用性。 參考文獻(xiàn): 【1】白毅,JSP訪問WEB數(shù)據(jù)庫(kù),網(wǎng)絡(luò)世界,2005,P49-49 【2】賀斌,基于JAvA/Servlet/JDBC技術(shù)的電子商務(wù)軟件設(shè)計(jì)與實(shí)現(xiàn),西安,西北工業(yè)大學(xué),2001 【3】劉媛春羅云翔,基于JSP的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),成都信息工程學(xué)院學(xué)報(bào),2005,20(4),P399-339 【4】王姍薩師宣:數(shù)據(jù)庫(kù)原理.北京:人民大學(xué)出版社,2004 【5】武延軍黃飛躍:精通JSP編程技術(shù).北京:人民郵電出版社,2001 【6】周平安. 基于JDBC的數(shù)據(jù)庫(kù)連接池高效管理策略.計(jì)算機(jī)工程與應(yīng)用,2003 3