應用JDBC4.0操作XML類型的字段(保留獲得xml數據)的辦法。本站提示廣大學習愛好者:(應用JDBC4.0操作XML類型的字段(保留獲得xml數據)的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是應用JDBC4.0操作XML類型的字段(保留獲得xml數據)的辦法正文
在 Java SE 6 所供給的諸多新特征和改良中,值得一提的是為 Java 法式供給數據庫拜訪機制的 JDBC 版本進級到了 4.0, 這個以 JSR-221 為代號的版本 , 供給了加倍方便的代碼編寫機制及柔性 , 而且支撐更多的數據類型 .
JDBC 4.0 的新特征分為下述四類:
1. 驅動及銜接治理
2. 異常處置
3. 數據類型支撐
4. API 的變更
以上說這麼都不是本文要講的重點內容,上面給年夜家引見jdbc4.0操作xml類型數據的辦法,詳細概況以下所示:
在JDBC4.0推出後,它的從多的特征正在遭到普遍地存眷。而最主要的更新就是支撐XML數據類型(在最新的SQL2003尺度中界說了這類數據類型),固然,將XML數據保留在數據庫中,並在運用法式中更新XML數據其實不是甚麼新技巧。但這是JDBC第一次供給了一個映照接口(java.sql.SQLXML),並應用這個接口來支撐SQL/XML數據類型。固然,為了知足處置XML數據類型的須要,其他的接口,如java.sql.Connection和java.sql.ResultSet,也被更新了。
在SQL2003尺度和XML數據類型推出之前,開辟人員必需將XML數據保留在BLOB、CLOB或TEXT類型字段中。如今,許多主流的數據庫(如SQL Server、Oracle和DB2)曾經參加了對XML數據類型的支撐。但在JDBC4之前,Java運用法式依然必需將數據庫中的XML數據類型轉換為JDBC支撐的數據類型。但新的JDBC可以經由過程當地的接口來綁定XML,是以,在處置任何數據庫中的XML數據變得更輕易和高效。
在本文中將引見若何用JDBC4.0來操作XML類型的字段(保留和取得XML數據),並給出了一個例子供讀者參考。
1、存儲和取得XML數據
為了將XML數據保留在一個XML類型的字段中,我們起首應當挪用java.sql.Connection.createSQLXML()辦法。這個辦法前往了一個java.sql.SQLXML的實例。然後我們可以經由過程挪用setOutputStream(), setCharacterStream()或簡略地挪用setString(String xml)來將XML數據加到SQLXML對象中。要留意的這個功效異常相似於BLOB和CLOB類型的應用。
JDBC4.0的症結特征之一就是我們還可以經由過程挪用java.sql.SQLXML的setResult(Class resultClass)辦法來取得一個設置avax.xml.transform.Result的類的完成。這些類包含DOMResult, JAXBResult和SAXResult。換句話說,我們無需轉換便可以簡略地做以下工作:
1. 獲得XML數據
2. 樹立一個自力的DOMResult對象
3. 將DOMResult傳入java.sql.SQLXML對象
4. 直接經由過程java.sql.Statement將XML數據保留到呼應數據庫字段中
為了java.sql.ResultSet取得SQLXML類型數據,我們只須要地挪用getSQLXML,並指定響應地字段名或索引便可。然後我們可以經由過程getBinaryStream(), getCharacterStream()或getString()從java.io.InputStream中取得現實的XML數據,或是一個簡略的字符串。保留XML數據也取得XML數據的進程相似,我們還可以經由過程挪用SQLXML對象實例的getSource(Class sourceClass)辦法來取得XML源,是以,我們可以從任何完成javax.xml.transform.Source的類拜訪XML數據。
2、實例法式
因為JDBC4是在2006年12月11日由官方宣布的(隨J2SE6.0宣布),是以,如今許多數據庫驅動對JDBC4支撐的還不是很好。在本例子中應用了Apache Derby數據庫的較版本10.2來評論辯論對XML類型數據的保留和獲得。Derby的這個版本還不持java.sql.SQLXML,這就意味著我們不克不及直接從成果值中取得XML數據,和綁定XML數據。但Derby和SQL 2003兼容,可以常非輕易地應用嵌入形式,類此,它依然可認為我們演示若何操作XML數據,就好象在應用一個完整支撐JDBC4的驅動一樣。用於操作Derby的XML數據的代碼以下:
import java.io.StringReader; import java.sql.*; public class XmlDbTester { static final String XML1 = "<article>"+ "<title>First Article</title>"+ "<author>John Smith</author>"+ "<body>A very short article.</body>"+ "</article>"; static final String XML2 = "<article>"+ "<title>Second Article</title>"+ "<author>Mary Jones</author>"+ "<body>Another short article.</body>"+ "</article>"; static final String XML3 = "<article>"+ "<title>Third Article</title>"+ "<author>John Smith</author>"+ "<body>Last short article.</body>"+ "</article>"; static final String[] ARTICLES = {XML1, XML2, XML3}; public static void main(String s[]) { XmlDbTester xdt = new XmlDbTester(); Connection c = xdt.getConnection(); xdt.loadDemoData(c); xdt.demoXmlResult(c);
以上所述是小編給年夜家引見的應用JDBC4.0操作XML類型數據的辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!