亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談Java數(shù)據(jù)庫(kù)連接

        2009-08-14 07:41:00童少娟
        中國(guó)校外教育(下旬) 2009年7期
        關(guān)鍵詞:連接數(shù)據(jù)庫(kù)

        童少娟

        [摘 要]Java數(shù)據(jù)庫(kù)連接(JDBC)由一組用 Java編程語(yǔ)言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的 API,使他們能夠用純Java API來編寫數(shù)據(jù)庫(kù)應(yīng)用程序,本文介紹了JDBC的概念、功能、特點(diǎn)及JDBC連接幾種數(shù)據(jù)庫(kù)的方式。

        [關(guān)鍵詞]JDBC Java 數(shù)據(jù)庫(kù) 連接

        JDBC是執(zhí)行SQL語(yǔ)句的Java API。使用JDBC可以很容易地把SQL語(yǔ)句傳送到任何關(guān)系型數(shù)據(jù)庫(kù)中。換言之,用戶不必為訪問Sybase數(shù)據(jù)庫(kù)寫一個(gè)程序,又為訪問Oracle數(shù)據(jù)庫(kù)寫另一個(gè)程序??梢杂肑DBC API寫出唯一的程序,它能夠?qū)QL語(yǔ)句發(fā)送到相應(yīng)的任何一種數(shù)據(jù)庫(kù)。Java與JDBC的結(jié)合,使程序員可以只寫一次數(shù)據(jù)庫(kù)應(yīng)用軟件后,就能在各種數(shù)據(jù)庫(kù)系統(tǒng)上運(yùn)行。由于Java語(yǔ)言具有健壯性、安全、易使用、易理解和自動(dòng)下載到網(wǎng)絡(luò)等優(yōu)點(diǎn),因此,它是數(shù)據(jù)庫(kù)應(yīng)用的一個(gè)極好的基礎(chǔ)語(yǔ)言。現(xiàn)在,需要找到一種能使Java應(yīng)用與各種不同數(shù)據(jù)庫(kù)對(duì)話的方式,而JDBC正是實(shí)現(xiàn)這種對(duì)話的一種機(jī)制。

        一、JDBC的功能與特點(diǎn)

        1.JDBC的基本功能

        (1)建立與數(shù)據(jù)庫(kù)的連接;(2)發(fā)送SQL語(yǔ)句;(3)處理結(jié)果。

        2.JDBC是低級(jí)的API與高級(jí)API的基礎(chǔ)

        JDBC是一種“低級(jí)”的接口,因?yàn)樗苯诱{(diào)用SQL命令,但它又可以作為構(gòu)造高級(jí)接口與工具的基礎(chǔ)。高級(jí)接口是“用戶友善的”、更易理解和更為方便的API,由后臺(tái)將它翻譯成如JDBC這樣的低級(jí)接口。有兩種基于JDBC的高級(jí)API正處在開發(fā)之中:一種是嵌入SQL的Java。JDBC要求把SQL語(yǔ)句作為字符串傳遞給Java方法。嵌入SQL預(yù)處理程序,可讓程序員把SQL與Java直接混合使用。另一種是把關(guān)系數(shù)據(jù)庫(kù)表直接映射成Java類。在“對(duì)象/關(guān)系”的映射中,表中的每一行變成類的一個(gè)實(shí)例,每一列的值對(duì)應(yīng)于該實(shí)例的一個(gè)屬性。然后,程序員可直接操作Java對(duì)象,并自動(dòng)生成取、存數(shù)據(jù)的SQL調(diào)用。另外,它還提供了更高級(jí)的映射,例如,在Java類中把多個(gè)表的行結(jié)合起來。

        3.JDBC與ODBC及其它API的比較

        目前,Microsoft的ODBC API是訪問關(guān)系型數(shù)據(jù)庫(kù)中應(yīng)用最廣的編程接口,它幾乎能將所有平臺(tái)的所有數(shù)據(jù)庫(kù)連接起來?,F(xiàn)在的問題是可否通過Java來使用ODBC呢?回答是肯定的,但最好的做法是在JDBC幫助下采用JDBC-ODBC橋接方式實(shí)現(xiàn)。需要JDBC的理由如下:

        (1)Java不能直接使用ODBC。因?yàn)镺DBC使用C語(yǔ)言接口,如果讓Java來調(diào)用本機(jī)C代碼的話,那會(huì)在安全、屬性、健壯性、應(yīng)用的可移植性等方面帶來困難。

        (2)不希望把ODBC C API逐字地翻譯成Java API。例如,ODBC使用了大量的易于出錯(cuò)的指針,而Java取消了這種不安全的指針?,F(xiàn)在通過JDBC,把ODBC翻譯成具有Java風(fēng)格的面向?qū)ο蟮慕涌凇?/p>

        (3)JDBC的Java API提供“純Java”的解決辦法。當(dāng)使用ODBC時(shí),ODBC驅(qū)動(dòng)器管理程序與驅(qū)動(dòng)器必須手工地裝入到每架客戶機(jī)上。而JDBC驅(qū)動(dòng)器全部是用Java編寫的,JDBC代碼則在所有Java平臺(tái)(從網(wǎng)絡(luò)計(jì)算機(jī)到主機(jī))上都可自動(dòng)安裝,并且是可移植的和安全的。

        總之,JDBC API是一種基于SQL的抽象與概念的Java接口,它是基于ODBC的。熟悉ODBC的程序員很容易學(xué)習(xí)JDBC,JDBC保留了ODBC的基本設(shè)計(jì)功能。而且兩種接口都是基于X/OpenSQL CLI(Call Level Interface)。最大的區(qū)別是JDBC保持了Java自身的風(fēng)格與優(yōu)點(diǎn)。最近,Microsoft引入了ODBC以外的新的API,包括RDO、ADO和OLE DB。其設(shè)計(jì)策略在許多方面與JDBC類似,也是一種基于ODBC類的面向?qū)ο蟮臄?shù)據(jù)庫(kù)接口。

        4.保證一致性的措施

        結(jié)構(gòu)化查詢語(yǔ)言(SQL)是存取關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。盡管多數(shù)DBMS系統(tǒng)在基本功能上都采用SQL的標(biāo)準(zhǔn)形式,但在高級(jí)功能上它們并不遵循最新定義的標(biāo)準(zhǔn)SQL語(yǔ)法、語(yǔ)義。例如,不是所有的數(shù)據(jù)庫(kù)都支持存儲(chǔ)過程或外部連接,這樣就產(chǎn)生了不一致。JDBC API處理這個(gè)問題的方法是允許將任何查詢字符串傳遞給基礎(chǔ)DBMS驅(qū)動(dòng)器。JDBC處理SQL一致性問題的第二種方法是采用ODBC風(fēng)格的例外條款,它提供了表示幾種常見的SQL差別的標(biāo)準(zhǔn)JDBC語(yǔ)法。例如,有表示日期文字與存儲(chǔ)過程定義的例外條款。

        二、JDBC連接幾種數(shù)據(jù)庫(kù)的方式

        1.Oracle8/8i/9i數(shù)據(jù)庫(kù)(thin模式) Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();

        String url=“jdbc:oracle:thin:@localhost:1521:orcl”;//orcl為數(shù)據(jù)庫(kù)的SID

        String user=“test”;

        String password=“test”;

        Connection conn= DriverManager.getConnection(url,user,password);

        2.DB2數(shù)據(jù)庫(kù) Class.forName(“com.ibm.db2.jdbc.app.DB2Driver ”).newInstance();

        String url=“jdbc:db2://localhost:5000/sample”;//sample為你的數(shù)據(jù)庫(kù)名

        String user=“admin”;

        String password=“”;

        Connection conn= DriverManager.getConnection(url,user,password);

        3.Sql Server7.0/2000數(shù)據(jù)庫(kù)

        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

        String url=“jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb”;

        //mydb為數(shù)據(jù)庫(kù)

        String user=“sa”;

        String password=“”;

        Connection conn= DriverManager.getConnection(url,user,password);

        參考文獻(xiàn):

        [1]蕭仁惠,陳錦輝.JDBC數(shù)據(jù)庫(kù)程序設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2004.2.

        [2]洪偉恩.深入淺出Java 2面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2004.5.

        猜你喜歡
        連接數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        公路與城市道路連接問題的研究探討
        騰訊發(fā)揮“連接”優(yōu)勢(shì)助力區(qū)域品牌崛起
        改進(jìn)主變低壓側(cè)套管與硬母排間的連接
        陳春花:什么樣的公司最受90后歡迎?
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        四川丰满妇女毛片四川话| 久久综合这里只有精品| 99精品视频69v精品视频免费| 精品国产97av一区二区三区| 国产精品亚洲二区在线看| 国产欧美日韩一区二区加勒比| 99在线精品免费视频九九视| 女人夜夜春高潮爽a∨片传媒 | 久久亚洲中文字幕精品一区四| 一区二区三区四区黄色av网站| 亚洲av永久无码天堂网小说区| 国产午夜鲁丝片av无码| 日韩中文字幕中文有码| 无码国产日韩精品一区二区| 天堂av一区一区一区| 亚洲男人av天堂久久资源| 亚洲精品熟女国产| 一级片麻豆| 无码国产一区二区色欲| 性感美女脱内裤无遮挡| 无码人妻丰满熟妇啪啪网站| 91spa国产无码| 国产三级视频一区二区| 国产精品一区二区三区四区亚洲| 中文字幕无码乱人伦| 蜜桃一区二区三区| 欧美巨大巨粗黑人性aaaaaa| 亚洲国产欧美另类va在线观看| 大香蕉视频在线青青草| 国产a√无码专区亚洲av| 午夜无码片在线观看影视| 久99久热只有精品国产男同 | 国产丝袜美腿嫩模视频诱惑| 国产熟人精品一区二区| 亚洲欧美日韩在线不卡| 国产一毛片| 国产精品成年人毛片毛片| 国产欧美性成人精品午夜| 中文幕无线码中文字蜜桃| 色婷婷久久免费网站| 日本免费精品一区二区|