• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    淺談Java通過JDBC連接Oracle數(shù)據(jù)庫技術(shù)

    2014-04-29 00:00:00韋海清

    摘 要:本文主要對Java連接Oracle數(shù)據(jù)庫技術(shù)進(jìn)行分析,討論通過JDBC的方法來進(jìn)行連接Oracle數(shù)據(jù)庫,如何實(shí)現(xiàn)對Oracle數(shù)據(jù)庫的訪問。

    關(guān)鍵詞:Java;Oracle;JDBC 數(shù)據(jù)庫;驅(qū)動程序

    中圖分類號:TP311.13

    Java程序設(shè)計(jì)語言是隨著因特網(wǎng)的發(fā)展而產(chǎn)生的,也是目前被國內(nèi)外廣泛使用的程序設(shè)計(jì)語言之一。那么由于Java語言的重要性,而且社會的需求量大,就業(yè)面廣的一些特點(diǎn)。使得做Java的一些項(xiàng)目需要訪問數(shù)據(jù)庫,特別目前比較主流的軟件開發(fā)中,都涉及到訪問數(shù)據(jù)庫的問題,下面討論在Java中如何連接大型的Oracle數(shù)據(jù)庫。

    1 JDBC 驅(qū)動 API

    1.1 JDBC簡介。JDBC是(Java DataBase Connectivity)的縮寫,它是Java應(yīng)用程序連接和操作關(guān)系型數(shù)據(jù)庫的應(yīng)用程序接口(API)。JDBC由一組類(Class)和接口(Interface)所組成,通過調(diào)用這些類和接口所提供的方法,可以連接不同的數(shù)據(jù)庫,對數(shù)據(jù)庫下達(dá)SQL命令并取得運(yùn)行結(jié)果,并為各種不同的數(shù)據(jù)庫提供統(tǒng)一的操作方式和編程思路。

    1.2 JDBC工作原理。如圖1所示,其中JDBC驅(qū)動程序管理器是JDBC體系結(jié)構(gòu)的核心,其作用是根據(jù)目標(biāo)數(shù)據(jù)沖突(包括連接方式)的不同,選擇相應(yīng)的JDBC驅(qū)動程序供當(dāng)前Java 應(yīng)用程序調(diào)用。

    圖1

    從圖中可以看出,JDBC起到了應(yīng)用程序與不同種類數(shù)據(jù)庫間連接橋梁的作用。因此當(dāng)Java程序員在編寫數(shù)據(jù)庫操作程序時(shí),可以只針對JDBC進(jìn)行編程,無須依賴特定的數(shù)據(jù)庫產(chǎn)品,基本達(dá)到寫一個Java應(yīng)用程序時(shí),適應(yīng)所的數(shù)據(jù)庫的目的。

    2 JDBC數(shù)據(jù)庫驅(qū)動程序

    驅(qū)動程序是指為計(jì)算機(jī)操作系統(tǒng)提花的訪問硬件設(shè)備的接口程序,操作系統(tǒng)通過用相應(yīng)的驅(qū)動程序來操作各種不同硬件設(shè)備,如聲卡、顯卡、網(wǎng)卡和打印機(jī)等。當(dāng)前主流數(shù)據(jù)庫產(chǎn)品發(fā)起人帶有相應(yīng)的JDBC驅(qū)動程序。通過JDBC連接可分為以下四種類型。

    2.1 JDBC-ODBC橋連接模式。這類的連接是將JDBC翻譯成ODBC,然后使用一個ODBC驅(qū)動程序與數(shù)據(jù)庫進(jìn)行通信。它也是開放數(shù)數(shù)據(jù)庫互連(OBDC)是微軟件引進(jìn)的一種數(shù)據(jù)庫訪問接口技術(shù)。唯一不足的地方就是它的速度比較低。

    2.2 Java到本地API模式。這類連接是將JDBC調(diào)用轉(zhuǎn)換為對本API的調(diào)用,用于與數(shù)據(jù)庫的客戶端API接口進(jìn)行通信,也屬于非直接的數(shù)據(jù)庫連接。在使用這種驅(qū)動程序之前,不僅需要安裝Java類庫,還需要安裝一些與平臺相關(guān)的代碼。這種驅(qū)動方式速度上快于第一種驅(qū)動模式。

    2.3 JDBC-NET的純Java驅(qū)動程序。這種模式的驅(qū)動程序?qū)DBC調(diào)用轉(zhuǎn)換成數(shù)據(jù)庫無關(guān)的網(wǎng)絡(luò)訪問協(xié)議,利用中間件將客戶端連接到不同類型的數(shù)據(jù)庫系統(tǒng)。這種驅(qū)動程序是與平臺無關(guān)的,并且與用戶訪問的數(shù)據(jù)庫系統(tǒng)無關(guān),特別適合組建三層的應(yīng)用模型,這是最為靈活的JDBC驅(qū)動程序,單個驅(qū)動程序可以對多個數(shù)據(jù)庫進(jìn)行訪問,也屬于擴(kuò)展性較好。

    2.4 本地協(xié)議的純Java驅(qū)動程序。特定的數(shù)據(jù)庫協(xié)議將JDBC請求直接發(fā)送到數(shù)據(jù)庫服務(wù)器,以實(shí)現(xiàn)程序端和數(shù)據(jù)庫間的直接通信,屬于純Java驅(qū)動程序。而且這種驅(qū)動方式是最直接,速度最快,但需要針對不同的數(shù)據(jù)庫使用不同的驅(qū)動程序。

    上面不管是采用哪種方法驅(qū)動方式訪問數(shù)據(jù)庫都很類似,但是第3、4種是純Java的驅(qū)動程序,它們都具備Java 的所有優(yōu)點(diǎn),它們在性能,可移植性,功能方面都非常有優(yōu)勢。

    3 通過JDCB驅(qū)動訪問Oracle數(shù)據(jù)庫

    3.1 JDBC訪問數(shù)據(jù)庫步驟。從設(shè)計(jì)上來說,使用JDBC類進(jìn)行編程與使用普通的Java類沒有太大的區(qū)別:可以構(gòu)建JDBC核心類的對象,如果需要還可以繼承這些類,用于JDBC編程的類都包含在java.sql和javax.sql兩個包中。

    所有的JDBC的程序的第一步都是與數(shù)據(jù)庫進(jìn)行建立連接。用戶得到一個java.sql.Connention類的對象,對于數(shù)據(jù)庫的所有操作都是基于這個對象。

    一般要經(jīng)過如下步驟:(1)加載驅(qū)動程序:Class.forName(driver);(2)建立數(shù)據(jù)庫連接:Connection con=DriverManager.getConnection(url);(3)創(chuàng)建SQL語句對象:Statement stmt=con.createStatement();(4)執(zhí)行數(shù)據(jù)庫查詢語句:ResultSet rs=stmt.executeQuery(sql);(5)查詢結(jié)果處理及關(guān)閉結(jié)果集對象:rs.close();(6)關(guān)閉語句對象:stmt.close();(7)關(guān)閉連接:con.close();

    JDBC的D riverManager查找到相應(yīng)的數(shù)據(jù)Driver并裝載。在程序中使用Class.forName()方法動態(tài)裝載并注冊Driver,如Class.forName(“sun.jdbc,odbc.JdbcOdbcDriver”),通過DriverManager.getConnection()與不同的數(shù)據(jù)庫建立連接。

    3.2 分析連接數(shù)據(jù)庫的方法。第一步:Java連接Oracle數(shù)據(jù)庫的主要語句如下:Class.forName(“數(shù)據(jù)庫驅(qū)動類的名字”);

    con=DriverManager.getConnenction(“jdbc:oracle:thin:@訪問數(shù)據(jù)庫的IP地址:Oracle端口號:MYORACL”,”username”,”password”)

    第二步:通過JDBC連接Oralce數(shù)據(jù)庫。

    String result=””; //查詢結(jié)果字符串

    String sql=”select * from emp”; //SQL字符串

    //連接字符串,格式:“jdbc:數(shù)據(jù)庫驅(qū)動名稱:連接模式:@數(shù)據(jù)庫服務(wù)器ip:端口號:數(shù)據(jù)庫SID”

    String url=”jdbc:oracle:thin:@localhost:1521myoracl”;

    String username=”scott”;//用戶名 String password=”admin”;//密碼

    Class.foraName(“oracle驅(qū)動類的名字”).newInstance();//創(chuàng)建Oracle數(shù)據(jù)庫驅(qū)動實(shí)例

    Connection conn=DriverManager.getConnection(url地址,用戶名,密碼);//獲得與數(shù)據(jù)庫的連接

    第三步:下面通過上面所說的方法樣例程序如下:

    try{

    Class.forName(\"oracle.jdbc.driver.OracleDriver\");

    Connection con=DriverManager.getConnection(\"jdbc:oracle:thin:@127.0.0.1:1521:MYORACL\",\"scott\",\"admin\");

    Statement st=con.createStatement();

    ResultSet rs=st.executeQuery(\"select * from emp\");

    while(rs.next())

    {System.out.println(\"\t\n\"+\"EMPNO:\"+rs.getString(1));

    System.out.println(\"\t\n\"+\"ENAME:\"+rs.getString(2)); }

    rs.close();st.close();con.close();

    }catch(SQLException e) { e.printStackTrace();}

    4 結(jié)束語

    隨著現(xiàn)代軟件開發(fā)技術(shù)的發(fā)展,對于訪問數(shù)據(jù)庫的技術(shù)是必需,但是采用哪種方式去訪問數(shù)據(jù)比較好,特別是針對一些大型的企業(yè),公司里面尤其重要。也將是保證數(shù)據(jù)庫系統(tǒng)安全,穩(wěn)定的保障。由于軟件技術(shù)的知識不斷在更新,本人還有很多不完善和不成熟的地方,有待提高對軟件技術(shù)的研究和改進(jìn)。

    參考文獻(xiàn):

    [1]王薇.Java程序設(shè)計(jì)與實(shí)踐教程[M].北京:清華大學(xué)出版社.2011.

    [2]許煥新.Java程序設(shè)計(jì)精講[M].北京:清華大學(xué)出版社,2010.

    [3]何洪舟.Java程序中訪問Oracle數(shù)據(jù)庫的技術(shù)分析與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2007.

    作者簡介:韋海清(1983.09-),女,廣西北流人,廣西師范大學(xué),學(xué)士學(xué)位,研究方向:軟件技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)。

    作者單位:廣西英華國際職業(yè)學(xué)院,廣西欽州 535000

    蓬安县| 屯留县| 兖州市| 应城市| 沙湾县| 西平县| 乐至县| 安平县| 道真| 平塘县| 师宗县| 凭祥市| 富川| 湘阴县| 上高县| 旬阳县| 盐边县| 二连浩特市| 福建省| 南丰县| 安化县| 浦城县| 兖州市| 肇源县| 永修县| 临潭县| 营口市| 定结县| 正安县| 昭觉县| 都安| 连山| 郸城县| 富锦市| 黔东| 汾西县| 襄城县| 丹寨县| 平乡县| 隆回县| 互助|