JDBC專題說明(3)
發(fā)表時(shí)間:2024-01-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]JDBC專題介紹(3) 3. 接口概貌 接口分為兩個(gè)層次,一個(gè)是面向程序開發(fā)人員的JDBC API。另外一個(gè)是底層的JDBC Driver API。 3. 1. JDBC API JDBC API 被描述成為彝族抽象的Java接口,似的應(yīng)用程序遠(yuǎn)可以對某個(gè)數(shù)據(jù)庫打開連接,執(zhí)行S...
JDBC專題介紹(3)
3. 接口概貌
接口分為兩個(gè)層次,一個(gè)是面向程序開發(fā)人員的JDBC API。另外一個(gè)是底層的JDBC Driver API。
3. 1. JDBC API
JDBC API 被描述成為彝族抽象的Java接口,似的應(yīng)用程序遠(yuǎn)可以對某個(gè)數(shù)據(jù)庫打開連接,執(zhí)行SQL語句并且處理結(jié)果。最重要的接口是:
* java.sql.DriverManager 處理驅(qū)動(dòng)的調(diào)入并且對產(chǎn)生新的數(shù)據(jù)庫連接提供支持。
* java.sql.Connection 代表對特定數(shù)據(jù)庫的連接。
* java.sql.Statement 代表一個(gè)特定的容器,來對一個(gè)特定的數(shù)據(jù)庫執(zhí)行SQL語句。
* java.sql.ResultSet 控制對一個(gè)特定語句的行數(shù)據(jù)的存取。
其中java.sql.Statement又有兩個(gè)子類型:
1. java.sql.PreparedStatement 用于執(zhí)行預(yù)編譯的SQL語句。
2. java.sql.CallableStatement 用于執(zhí)行對一個(gè)數(shù)據(jù)庫內(nèi)嵌過程的調(diào)用。
下面的章節(jié)對JDBC是如何運(yùn)行的提供了更多描述,整個(gè)定義見第13章。另外第15章描述了系統(tǒng)如果獲取數(shù)據(jù)庫的元數(shù)據(jù)信息。
3. 2. JDBC Driver API
java.sql.Driver在第9章有完整的定義了.大部分JDBC驅(qū)動(dòng)只需要完成這些JDBC API所定義的抽象類就可以了。特別地,所有的driver必須提供對java.sql.Connection, java.sql. State-ment, java.sql.Prepared-Statement, and java.sql.ResultSet的實(shí)現(xiàn)。如果目標(biāo)DBMS提供有OUT參數(shù)的內(nèi)嵌過程,那么還必須提供java.sql.CallableStatement 接口。 每個(gè)database driver必須提供一個(gè)類:java.sql.Driver以使得系統(tǒng)可以由 java.sql.DriverManager來管理。
一個(gè)顯然的driver是在ODBC之上提供對JDBC的實(shí)現(xiàn),從而提供與ODBC接口的JDBC-ODBC 橋,就象前面的圖所顯示的.由于JDBC放在ODBC之后,所以實(shí)現(xiàn)起來簡單而且高效。
另外一個(gè)有用的驅(qū)動(dòng)直接接觸數(shù)據(jù)庫無關(guān)的網(wǎng)絡(luò)協(xié)議。發(fā)布一個(gè)協(xié)議允許多個(gè)服務(wù)器實(shí)現(xiàn)的方法,例如在ODBC或者特定的DBMS上(盡管已經(jīng)有了一些使用固定協(xié)議的產(chǎn)品,但是我們不打算對它們實(shí)現(xiàn)標(biāo)準(zhǔn)化。),是可取的。
4. JDBC使用場合
Before looking at specifics of the JDBC API, an understanding of typical use scenarios is help-ful. There are two common scenarios that must be treated differently for our purposes: applets and applications.
在看JDBC API之前了解一下典型的使用場合是有幫助的。通常有兩種情形必須分別對待:applet和application.
4. 1. Applet
目前Java使用的最多的從網(wǎng)絡(luò)中下載的applet,它們作為web文件的一個(gè)部分。當(dāng)中有數(shù)據(jù)庫存取applet和能夠使用JDBC來接觸數(shù)據(jù)庫的applet。例如,一個(gè)用戶可能下載一個(gè)顯示股票歷史價(jià)格圖的applet。這個(gè)applet通過internet來從關(guān)系數(shù)據(jù)庫中獲得股票歷史價(jià)格。
最一般的情況里面,對applet的使用是通過不可靠的邊界的。例如從另外一個(gè)公司或者Internet上獲得這些applet。于是稱這個(gè)情況為"Internet"場合。然而applet也可能通過局域網(wǎng)下載。在這個(gè)情況里面,客戶機(jī)的安全都還是一個(gè)問題。
典型的applet在幾個(gè)方面與傳統(tǒng)的數(shù)據(jù)庫應(yīng)用程序有所不同:
1). 不可靠的applet被嚴(yán)格地限制在他們被允許執(zhí)行的的操作上。特別地,不允許他們存取本地的文件,切不允許他們對任意的數(shù)據(jù)庫建立網(wǎng)絡(luò)連接。
2). 就標(biāo)識和連接網(wǎng)上數(shù)據(jù)庫來說,Internet環(huán)境里面的applet面臨新的問題。
3). 當(dāng)數(shù)據(jù)庫可能與你相隔萬里的時(shí)候,效率的考慮也有所不同了。與局域網(wǎng)相比,Internet上數(shù)據(jù)庫applet可能會碰到十分不同的反應(yīng)時(shí)間。