jdbc有什么用途
JDBC是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,那么你對JDBC了解多少呢?下面就讓學習啦小編來給你科普一下什么是jdbc。
jdbc的定義
有了JDBC,向各種關系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。
Java數(shù)據(jù)庫連接體系結構是用于Java應用程序連接數(shù)據(jù)庫的標準方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。
Java 具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡上自動下載等特性,是編寫數(shù)據(jù)庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。
JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠程數(shù)據(jù)庫。企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java 編程語言,對從 Java 中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。
MIS管理員們都喜歡 Java 和 JDBC 的結合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。
jdbc的用途
簡單地說,JDBC 可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 操作數(shù)據(jù)庫的語句并處理結果。下列代碼段給出了以上三步的基本示例:
Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
上述代碼對基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結,當然,在本小節(jié)的后續(xù)部分會對它做詳盡的分析講解。
jdbc的一致性
結構化查詢語言(SQL) 是訪問關系數(shù)據(jù)庫的標準語言。困難之處在于:雖然大多數(shù)的 DBMS (數(shù)據(jù)庫管理系統(tǒng))對其基本功能都使用了標準形式的 SQL,但它們卻不符合最近為更高級的功能定義的標準 SQL 語法或語義。例如,并非所有的數(shù)據(jù)庫都支持儲存程序或外部連接,那些支持這一功能的數(shù)據(jù)庫又相互不一致。人們希望 SQL 中真正標準的那部份能夠進行擴展以包括越來越多的功能。但同時 JDBC API 又必須支持現(xiàn)有的 SQL。
JDBC API 解決這個問題的一種方法是允許將任何查詢字符串一直傳到所涉及的 DBMS驅(qū)動程序上。這意味著應用程序可以使用任意多的 SQL 功能,但它必須冒這樣的風險:有可能在某些 DBMS 上出錯。事實上,應用程序查詢甚至不一定要是 SQL,或者說它可以是個為特定的 DBMS 設計的 SQL 的專用派生物(例如,文檔或圖象查詢)。
JDBC 處理 SQL 一致性問題的第二種方法是提供 ODBC 風格的轉(zhuǎn)義子句,這將在后續(xù)部分中討論。轉(zhuǎn)義語法為幾個常見的 SQL 分歧提供了一種標準的 JDBC 語法。例如,對日期文字和已儲存過程的調(diào)用都有轉(zhuǎn)義語法。
對于復雜的應用程序,JDBC 用第三種方法來處理 SQL 的一致性問題它利用 DatabaseMetaData 接口來提供關于 DBMS 的描述性信息,從而使應用程序能適應每個 DBMS 的要求和功能。
由于 JDBC API 將用作開發(fā)高級數(shù)據(jù)庫訪問工具和 API 的基礎 API,因此它還必須注意其所有上層建筑的一致性。"符合JDBC標準TM" 代表用戶可依賴的 JDBC 功能的標準級別。要使用這一說明,驅(qū)動程序至少必須支持 ANSI SQL-2 Entry Level(ANSI SQL-2 代表美國國家標準局1992 年所采用的標準。Entry Level代表SQL功能的特定清單)。驅(qū)動程序開發(fā)人員可用 JDBC API 所帶的測試工具包來確定他們的驅(qū)動程序是否符合這些標準。
"符合 JDBC 標準TM" 表示提供者的 JDBC 實現(xiàn)已經(jīng)通過了JavaSoft 提供的一致性測試。這些一致性測試將檢查 JDBC API中定義的所有類和方法是否都存在,并盡可能地檢查程序是否具有SQL Entry Level 功能。當然,這些測試并不完全,而且 JavaSoft 目前也無意對各提供者的實現(xiàn)進行標級。但這種一致性定義的確可對JDBC實現(xiàn)提供一定的可信度。隨著越來越多的數(shù)據(jù)庫提供者、連接提供者、Internet 提供者和應用程序編程員對 JDBC API 的接受,JDBC 也正迅速成為 Java 數(shù)據(jù)庫訪問的標準。
看過“jdbc有什么用途”的人還看了: