JDBC專題介紹(3)

azz發表於2007-08-23
JDBC專題介紹(3)[@more@]  JDBC專題介紹(3)

  3. 介面概貌

   介面分為兩個層次,一個是面向程式開發人員的JDBC API。另外一個是底層的JDBC Driver API。

  3. 1. JDBC API

   JDBC API 被描述成為彝族抽象的Java介面,似的應用程式遠可以對某個資料庫開啟連線,執行SQL語句並且處理結果。最重要的介面是:

  * java.sql.DriverManager 處理驅動的調入並且對產生新的資料庫連線提供支援。

  * java.sql.Connection 代表對特定資料庫的連線。

  * java.sql.Statement  代表一個特定的容器,來對一個特定的資料庫執行SQL語句。

  * java.sql.ResultSet  控制對一個特定語句的行資料的存取。

  其中java.sql.Statement又有兩個子型別:

  1. java.sql.PreparedStatement  用於執行預編譯的SQL語句。

  2. java.sql.CallableStatement  用於執行對一個資料庫內嵌過程的呼叫。

   下面的章節對JDBC是如何執行的提供了更多描述,整個定義見第13章。另外第15章描述了系統如果獲取資料庫的後設資料資訊。

  3. 2. JDBC Driver API

   java.sql.Driver在第9章有完整的定義了.大部分JDBC驅動只需要完成這些JDBC API所定義的抽象類就可以了。特別地,所有的driver必須提供對java.sql.Connection, java.sql. State-ment, java.sql.Prepared-Statement, and java.sql.ResultSet的實現。如果目標DBMS提供有OUT引數的內嵌過程,那麼還必須提供java.sql.CallableStatement 介面。 每個database driver必須提供一個類:java.sql.Driver以使得系統可以由 java.sql.DriverManager來管理。

   一個顯然的driver是在ODBC之上提供對JDBC的實現,從而提供與ODBC介面的JDBC-ODBC 橋,就象前面的圖所顯示的.由於JDBC放在ODBC之後,所以實現起來簡單而且高效。

   另外一個有用的驅動直接接觸資料庫無關的網路協議。釋出一個協議允許多個伺服器實現的方法,例如在ODBC或者特定的DBMS上(儘管已經有了一些使用固定協議的產品,但是我們不打算對它們實現標準化。),是可取的。



  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使用的最多的從網路中的applet,它們作為web檔案的一個部分。當中有資料庫存取applet和能夠使用JDBC來接觸資料庫的applet。例如,一個使用者可能下載一個顯示股票歷史價格圖的applet。這個applet透過internet來從關聯式資料庫中獲得股票歷史價格。

   最一般的情況裡面,對applet的使用是透過不可靠的邊界的。例如從另外一個公司或者Internet上獲得這些applet。於是稱這個情況為"Internet"場合。然而applet也可能透過區域網下載。在這個情況裡面,客戶機的安全都還是一個問題。

  典型的applet在幾個方面與傳統的資料庫應用程式有所不同:

  1). 不可靠的applet被嚴格地限制在他們被允許執行的的操作上。特別地,不允許他們存取本地的檔案,切不允許他們對任意的資料庫建立網路連線。

  2). 就標識和連線網上資料庫來說,Internet環境裡面的applet面臨新的問題。

  3). 當資料庫可能與你相隔萬里的時候,效率的考慮也有所不同了。與區域網相比,Internet上資料庫applet可能會碰到十分不同的反應時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章