資源描述:
《java數(shù)據(jù)庫接口jdbc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、Java數(shù)據(jù)庫接口JDBC1.1什么是JDBCJDBC是一種用于執(zhí)行SQL語句的JavaAPI(JavaDatabaseConnectivity)。它由一組用Java編程語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,使他們能夠用純Java來編寫數(shù)據(jù)庫應(yīng)用程序。有了JDBC,向各種關(guān)系數(shù)據(jù)庫發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,為訪問Informix數(shù)據(jù)庫又寫另一個程序,等等。
2、您只需用JDBCAPI寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL語句。而且,使用Java編程語言編寫的應(yīng)用程序,就無須去憂慮要為不同的平臺編寫不同的應(yīng)用程序。將Java和JDBC結(jié)合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運(yùn)行。Java具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法。而JDBC正是作為此種用途的機(jī)制。JDBC擴(kuò)展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有apple
3、t的網(wǎng)頁,而該applet使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫。企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機(jī)有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝
4、和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。1.1.1JDBC的用途是什么?簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接;發(fā)送SQL語句;處理結(jié)果。下列代碼段給出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");State
5、mentstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next())System.out.println(rs.getString("a")+""+rs.getString("b")+""+rs.getString("c"));1.1.2JDBC是一種低級API,是高級API的基礎(chǔ) JDBC是個“低級”接口,也就是說,它用于直接調(diào)用SQL命令。在這方面它的功能極佳,并比其它的數(shù)據(jù)庫
6、連接API易于使用,但它同時也被設(shè)計為一種基礎(chǔ)接口,在它之上可以建立高級接口和工具。 高級接口是“對用戶友好的”接口,它使用的是一種更易理解和更為方便的API,這種API在幕后被轉(zhuǎn)換為諸如JDBC這樣的低級接口。在編寫本文時,正在開發(fā)兩種基于JDBC的高級API: 一種用于Java的嵌入式SQL。至少已經(jīng)有一個提供者計劃編寫它。DBMS實(shí)現(xiàn)SQL:一種專門設(shè)計來與數(shù)據(jù)庫聯(lián)合使用的語言。JDBC要求SQL語句必須作為String傳給Java方法。相反,嵌入式SQL預(yù)處理器允許程序員將SQL語句直接與Java混在一起
7、使用。例如,可在SQL語句中使用Java變量,用以接受或提供SQL值。然后,嵌入式SQL預(yù)處理器將通過JDBC調(diào)用把這種Java/SQL的混合物轉(zhuǎn)換為Java。關(guān)系數(shù)據(jù)庫表到Java類的直接映射。JavaSoft和其它提供者都聲稱要實(shí)現(xiàn)該API。在這種“對象/關(guān)系”映射中,表中的每行對應(yīng)于類的一個實(shí)例,而每列的值對應(yīng)于該實(shí)例的一個屬性。于是,程序員可直接對Java對象進(jìn)行操作;存取數(shù)據(jù)所需的SQL調(diào)用將在“掩蓋下”自動生成。此外還可提供更復(fù)雜的映射,例如將多個表中的行結(jié)合進(jìn)一個Java類中?! ‰S著人們對JDBC的興
8、趣日益增漲,越來越多的開發(fā)人員一直在使用基于JDBC的工具,以使程序的編寫更加容易。程序員也一直在編寫力圖使最終用戶對數(shù)據(jù)庫的訪問變得更為簡單的應(yīng)用程序。例如,應(yīng)用程序可提供一個選擇數(shù)據(jù)庫任務(wù)的菜單。任務(wù)被選定后,應(yīng)用程序?qū)⒔o出提示及空白供填寫執(zhí)行選定任務(wù)所需的信息。所需信息輸入后,應(yīng)用程序?qū)⒆詣诱{(diào)用所需的SQL命令。在這樣一種程序的協(xié)助下,即