摘 要:科技在不斷進(jìn)步,社會生活也在從信息時代跨向大數(shù)據(jù)時代。大數(shù)據(jù)時代的來臨,使得JAVA技術(shù)開始在各個領(lǐng)域被使用。本文將簡要介紹JAVA技術(shù),以及采用JAVA技術(shù)來實現(xiàn)數(shù)據(jù)庫系統(tǒng)的應(yīng)用。
關(guān)鍵詞:JAVA技術(shù);數(shù)據(jù)庫;應(yīng)用
中圖分類號:TP311.13
JAVA語言作為一種面向?qū)ο蟮木幊陶Z言,具有多種功能,而且具有可移植性、分布性、安全性、高性能等特色?;贘AVA語言可以實現(xiàn)數(shù)據(jù)庫系統(tǒng)的應(yīng)用,使得數(shù)據(jù)庫系統(tǒng)在大數(shù)據(jù)時代達(dá)到高頻率的使用。
1 JAVA技術(shù)
JAVA語言運(yùn)用于數(shù)據(jù)庫時,并不是特別令人滿意的結(jié)果,特別是在基于Web的B/S結(jié)構(gòu)的在線數(shù)據(jù)庫應(yīng)用方面的煩瑣復(fù)雜配置。雖然程序員通過不同方法,包括使用不同的接口設(shè)備來保證純JAVA的實現(xiàn),使用標(biāo)配的JAVA語言來進(jìn)行統(tǒng)一通信,但是就目前的成效來看,并不顯著。Sun Soft提供了用Java語言編寫成的Java與數(shù)據(jù)庫的接口規(guī)范JDBC,企圖通過統(tǒng)一標(biāo)準(zhǔn)JDBC API來進(jìn)行規(guī)范操作,結(jié)果也并不十分滿意。
受眾較為接受的幾種方案是:CGI(通用網(wǎng)關(guān)技術(shù))、SAPI、RAD(快速應(yīng)用開發(fā))、ASP(Active Server Pages)、API(應(yīng)用編程接口)、JDBC技術(shù)等。CGI作為早期開發(fā)技術(shù),成本頗高,而且存在著諸多缺陷,不再被人們使用了。SAPI技術(shù)是在改進(jìn)CGI的基礎(chǔ)上研發(fā)出來的,通過動態(tài)連接庫的技術(shù),使得線程成為主要方式,提升了速度和性能,但是由于編程語言頗為復(fù)雜,因此也并不常用。RAD技術(shù)借助外界的插件來實現(xiàn)自身的性能提升,雖然添加插件帶來了一定的麻煩,但是技術(shù)的性能確實得到提升。ASP技術(shù)相較于上述幾種技術(shù),性能明顯提升,具備強(qiáng)大的優(yōu)勢,即使存在著一些安全方面的問題,也可以通過安全補(bǔ)丁作為彌補(bǔ),可以說是目前windows最為常用的技術(shù)。
JDBC技術(shù)是JAVA執(zhí)行SQL語句的API,此項技術(shù)就是為了實現(xiàn)純粹JAVA而存在的。它定義了Java中的類和接口,表示數(shù)據(jù)庫連接、SQL指令、結(jié)果集合等。通過它可以在Java程序中建立與數(shù)據(jù)庫的鏈接,執(zhí)行SQL語句和處理SQL語句返回的結(jié)果。JDBC主要通過三種方式與數(shù)據(jù)庫連接:直接通信、通過JDBC驅(qū)動程序通信以及通過ODBC通信。而統(tǒng)一標(biāo)準(zhǔn)JDBC API提供了兩種接口的規(guī)范模式:一是面向開發(fā)人員的java1sql程序包,二是面向底層數(shù)據(jù)庫廠商的JDBC Drivers。前者主要是程序設(shè)計者使用的程序包,后者則為使用者常用的接口模式,目前為止,Java2的JDBC Drivers僅提供下述四種類型的數(shù)據(jù)庫驅(qū)動方式,且各有利弊:
1.1 JDBC-ODBC橋接方式。JDBC-ODBC橋接方式主要是兩種方式連接使用的方法,即利用了微軟的開放數(shù)據(jù)庫互連接口(ODBC API)同數(shù)據(jù)庫服務(wù)器通訊,客戶端計算機(jī)首先應(yīng)該安裝并配置ODBC driver和JDBC-ODBC bridge兩種驅(qū)動程序.使用兩種程序驅(qū)動的方式,一方面來說提升了性能,使得速度加快,另一方面來說則是加大了使用者的困難,程序變得更加復(fù)雜起來。
1.2 JDBC-Net方式。這種方式是純Java驅(qū)動,使用者使用標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議進(jìn)行網(wǎng)絡(luò)通信,也就是說只要是被認(rèn)可的網(wǎng)絡(luò)協(xié)議都可以同數(shù)據(jù)庫通信,訪問數(shù)據(jù)庫。這種JAVA驅(qū)動是自動驅(qū)動,只要是聯(lián)網(wǎng)的計算機(jī)都已經(jīng)自動下載了這種驅(qū)動方式,只要按照所想訪問數(shù)據(jù)庫即可。
1.3 Native-API partly Java driver方式。此種驅(qū)動方式是將數(shù)據(jù)庫廠商之間的特殊網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)轉(zhuǎn)換,換算成計算機(jī)常用的二進(jìn)制來計算。使用這種方法,計算機(jī)能夠自動與數(shù)據(jù)庫進(jìn)行通信,不再需要繁雜的編碼數(shù)據(jù)過程。當(dāng)然,這種驅(qū)動方式還是比較適合于程序員和操作員,并不是十分適合于一般的家用計算機(jī)或是個人計算機(jī)的使用。
1.4 Native-protocol pure Java driver方式。這種驅(qū)動方式與第二種一樣,也是純Java驅(qū)動。不同于標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議,而是數(shù)據(jù)庫的廠商使用特殊的JDBC協(xié)議驅(qū)動客戶與數(shù)據(jù)庫的服務(wù)器進(jìn)行通信,訪問數(shù)據(jù)庫。使用特殊協(xié)議進(jìn)行通信的方式的一大優(yōu)點就是很好地解決了速度效率問題,使得性能得到提升,但是由于廠商的特殊協(xié)議并不被列為防火墻范圍之內(nèi),因此存在著極大的安全隱患,這是值得注意的問題。
2 JAVA數(shù)據(jù)庫系統(tǒng)的應(yīng)用
2.1 設(shè)置數(shù)據(jù)庫連接。JDBC的驅(qū)動方式是利用數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫驅(qū)動器兩者完成的。使用一個被信任的數(shù)據(jù)庫服務(wù)器,或是一個一般的服務(wù)器對于JDBC來說是同樣效果的,因為JDBC能夠提供獨(dú)立于數(shù)據(jù)庫服務(wù)器的訪問數(shù)據(jù)庫的方法,也就是說JDBC能夠獨(dú)立完成數(shù)據(jù)庫訪問工作。當(dāng)然,除了數(shù)據(jù)庫服務(wù)器還需要數(shù)據(jù)庫驅(qū)動器,驅(qū)動程序,使得JDBC連接上服務(wù)器。安裝上這兩個程序之后,程序員編碼完成,安裝于計算機(jī)之中的JDBC驅(qū)動器就能夠建立起與數(shù)據(jù)庫的連接,進(jìn)行數(shù)據(jù)庫訪問通信工作。這是JDBC驅(qū)動來進(jìn)行數(shù)據(jù)庫連接的前期工作,利用JDBC的獨(dú)立優(yōu)勢進(jìn)行數(shù)據(jù)庫訪問工作,能夠簡單不借助其他技術(shù)完成這一任務(wù),可見JDBC驅(qū)動方式在數(shù)據(jù)庫系統(tǒng)中的強(qiáng)大應(yīng)用了。
2.2 進(jìn)行數(shù)據(jù)庫連接。在設(shè)置了數(shù)據(jù)庫的連接方法之后,進(jìn)行數(shù)據(jù)庫的連接工作。目前常用的方式是運(yùn)用Driver Manager類的get Connection方法建立起與數(shù)據(jù)庫連接。數(shù)據(jù)庫連接工作的目的,就是能夠進(jìn)行處理數(shù)據(jù)庫中的一些事務(wù),管理連接的方式,并能夠預(yù)處理將要執(zhí)行的SQL語句。數(shù)據(jù)庫的連接工作一旦完成,數(shù)據(jù)庫訪問通信連接之后,就能夠進(jìn)行數(shù)據(jù)庫的工作,所以說這一步驟至關(guān)重要。
2.3 查詢結(jié)果。數(shù)據(jù)庫的查詢工作完成之后,數(shù)據(jù)庫查詢結(jié)果將會以一個兩維(行、列)數(shù)據(jù)表返回保存在數(shù)據(jù)庫的系統(tǒng)中。查詢結(jié)果代表了此次查詢的目的,查詢的成功與否。這個查詢結(jié)果可以通過數(shù)據(jù)庫的網(wǎng)絡(luò)系統(tǒng)被發(fā)表出去,如若查詢結(jié)果不滿意也可以再次進(jìn)行查詢。
2.4 SQL語句執(zhí)行。SQL語句是是數(shù)據(jù)庫服務(wù)器中用來進(jìn)行交流的一種語句,也就是數(shù)據(jù)庫的一種語言。JDBC驅(qū)動時所用的語言應(yīng)當(dāng)與JDBC兼容,也就是要選擇符合JDBC需求的SQL語言,即支持ANSI SQL72標(biāo)準(zhǔn).SQL語句執(zhí)行有許多的功能,比如說作為一個數(shù)據(jù)定義語言時,SQL語句可以用來創(chuàng)建和設(shè)計數(shù)據(jù)庫;作為一個數(shù)據(jù)維護(hù)語言,SQL語句可以用來插入、更改、更新、刪除在數(shù)據(jù)庫中已經(jīng)存在或還未存在的信息;作為一個數(shù)據(jù)查詢語言,SQL語句可以用來在數(shù)據(jù)庫中進(jìn)行語言的查詢工作,借此獲得需要的信息。
2.5 數(shù)據(jù)庫安全問題。數(shù)據(jù)庫的安全問題最受人們關(guān)注,因為數(shù)據(jù)庫的不穩(wěn)定將會造成許多用戶的苦難。目前的JDBC支持驅(qū)動的數(shù)據(jù)庫存在很多的安全隱患,許多用戶也對此非常不滿。目前使用的JDBC驅(qū)動方式依然使用數(shù)據(jù)庫本身的能力來進(jìn)行安全保護(hù),這種自身攜帶的安全保護(hù)功能并不強(qiáng)大,及時使用了安全口令或是密碼等保護(hù)措施,也依然是很容易就被黑客入侵。所以僅僅是使用數(shù)據(jù)庫自身的保護(hù)系統(tǒng)是遠(yuǎn)遠(yuǎn)不夠的,還需要其他的保護(hù)措施來進(jìn)行安全防護(hù)。而JAVA的安全機(jī)制很高,JAVA為使用者和程序員們提供了便利的安全管理機(jī)制,并為此配置了安全工具聯(lián)合使用。所以,為了加強(qiáng)數(shù)據(jù)庫系統(tǒng)應(yīng)用安全,最好是能夠與其他的保護(hù)技術(shù)聯(lián)合使用,借用JAVA的安全機(jī)制來幫助數(shù)據(jù)庫系統(tǒng)安全功能的開發(fā)使用。
3 結(jié)束語
JAVA技術(shù)的使用成為數(shù)據(jù)時代的一個標(biāo)志,也是當(dāng)今社會的主流形式。在這樣的時代背景下,如何深入了解JAVA技術(shù),如何運(yùn)用好JAVA技術(shù)成為重要問題?;贘AVA技術(shù)的數(shù)據(jù)庫應(yīng)用系統(tǒng)也已經(jīng)在各個領(lǐng)域被廣泛使用,數(shù)據(jù)時代的JAVA技術(shù)將遍地開花。
參考文獻(xiàn):
[1]侯曉強(qiáng),徐春榮,勾海波.Java服務(wù)器編程實例[M].北京:清華大學(xué)出版社,2003.
[2]張振友,王偉.Java技術(shù)在多數(shù)據(jù)庫系統(tǒng)中的應(yīng)用研究[J].計算機(jī)與信息技術(shù),2010.
作者簡介:劉春穎(1977-),女,遼寧沈陽人,研究生,講師,主要研究方向:計算機(jī)科學(xué)與技術(shù)。
作者單位:沈陽師范大學(xué) 科信軟件學(xué)院,沈陽 110034