在這篇文章中,我首先將簡要解釋它的繼續層次結構,緊接著,我會使用一個例子演示如何利用javax.sql.rowset.WebRowSet接口的特征非常輕易地將數據庫中的數據轉化為xml文件,或者相反操作。然后我會討論這個接口的利弊。在以上解釋的基礎上,我會總結一些首選這個接口的情況。
任何現實世界中的企業級應用都需要訪問持久化存儲。關系型數據庫治理系統(RDBMS)是使用最廣泛的持久化存儲機制,它支持使用SQL進行數據查詢和更新。JDBC(Java DataBase Connectivity)是一系列的API,這些API為Java程序提供了一個使用SQL查詢和更新RDBMS的框架。
通過Java程序從數據庫中獲取數據或者更新數據庫的過程包含了多個步驟。首先,程序需要建立一個連接,它可以和目標數據庫進行通信。我們可以通過幾種不同的方法建立數據庫連接。傳統的方式是,Java程序在裝載了制造商提供的JDBC驅動后,調用java.sql.DriverManager類中適當的getConnection()方法獲得連接。另外一個(也是首選的)方式是,使用制造商提供的實現或者編寫一個針對目標數據庫的實現了javax.sql.Connection接口的自定義類進行連接對象的初始化。在更多的受約束環境中,例如Java EE容器,提供了使用JNDI(Java Naming and Directory Interface)查找獲得數據庫連接的方式。無論程序使用哪一種方式建立數據庫連接,假如連接成功,它應該有一個對java.sql.Connection接口實例的引用。通過連接,程序創建一個java.sql.Statement實例,或者一個包含數據庫查詢的子接口。最后,程序執行這個語句,獲得一個java.sql.ResultSet實例,它表示從數據庫中獲得的滿足查詢的實際數據。
在寫這篇文章時,JDK5.0是支持JDBC3.0的Java最新版本。JDBC3.0提供了一些特征,增加了數據操作和轉換的易用性和適應性。
在這篇文章中,我首先將簡要解釋它的繼續層次結構,緊接著,我會使用一個例子演示如何利用javax.sql.rowset.WebRowSet接口的特征非常輕易地將數據庫中的數據轉化為XML文件,或者相反操作。然后我會討論這個接口的利弊。在以上解釋的基礎上,我會總結一些首選這個接口的情況。
版權聲明:任何獲得Matrix授權的網站,轉載時請務必保留以下作者信息和鏈接
作者:Sharad Acharya;mydeman
原文:http://www.onjava.com/pub/a/onjava/2006/06/21/making-most-of-jdbc-with-webrowset.Html
Matrix:http://www.matrix.org.cn/resource/article/44/44626_WebRowSet.html
要害字:WebRowSet;JDBC
WebRowSet層次結構
我們開始先對WebRowSet接口的繼續層次結構作一個簡要的解釋。圖1顯示了相關的Java元素(包、接口和類),它們也是討論的一部分。
圖1 WebRowSet的繼續層次結構
繼續層次結構的根部是java.sql.ResultSet接口。這個接口的實例代表表格式的數據,這些數據通過執行包含對底層數據庫查詢的java.sql.Statement獲取。默認的結果集只能前向遍歷,并且不能更新。你不可能通過遍歷默認結果集的方式進行精確的控制。
那么,你有哪些選擇呢?這就依靠于你要對結果集進行什么操作。例如,假如你想結果集支持適合于JavaBeans組件模型的JDBC API,就需要使用java.sql.ResultSet的子接口javax.sql.RowSet。
因為Java程序訪問數據庫是一個重量級操作,所以內存中的數據高速緩存就是一個關系應用程序性能的要害因素。假如你想結果集作為一個行數據的容器緩存在內存中,那么你可以使用javax.sql.rowset.CachedRowSet,它是javax.sql.RowSet的子接口。這個接口的實例提供了不用一直保持連接數據源而操作數據的能力。更進一步,它是可滾動、可更新和可序列化的。除數據庫以外,它可以對其它表格式結構的數據源起作用,如電子數據表。
假如除了迄今為止提到的所有特征,你還要將結果集輸出到XML和使用有效的XML作為輸入,請選擇javax.sql.rowset.WebRowSet.。在Sun的參考實現類中已經提供了它的實例的一個實現,com.sun.rowset.WebRowSetImpl,并作為JDK5.0的一部分發行。
在層次結構的底部是javax.sql.rowset.JoinRowSet,javax.sql.rowset.WebRowSet的子接口,它提供了聯合多個相關結果集對象的方式,就像對底層數據庫表構造的SQL JOIN。
使用簡單結果集
伴隨上面的介紹給你留下的印象,我向你展示一個簡單的例子。這篇文章的所有例子開發環境都是Eclipse3.1.0,JDK5.0、Windows xp上的Oracle10.2。示例代碼和輸出文件參見資源部分。
我們考慮一個簡單的student表,它定義了四列來存儲信息。接下來的表格顯示了查詢該表獲得的結果。
SQL>select * from student;
ID FNAME LNAME AGE
200 Jack Dakota 21
100 John Doe 26
新聞熱點
疑難解答