程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 應用JDBC4.0操作XML類型的字段(保留獲得xml數據)的辦法

應用JDBC4.0操作XML類型的字段(保留獲得xml數據)的辦法

編輯:關於JAVA

應用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類型數據的辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved