public interface SQLXML
SQLXML接口提供访问一个字符串XML值的方法,读者或作家,或作为一个流。同时XML值可以通过源或将因此访问,用于XML解析器API如DOM、SAX和StAX,以及XSLT转换和XPath的评价。
方法在接口ResultSet和PreparedStatement CallableStatement、,如getsqlxml允许程序员访问XML值。此外,此接口还具有更新XML值的方法。
对SQLXML实例的XML值可作为二进制流使用
SQLXML SQLXML =结果集。getsqlxml(柱);InputStream二进制流= SQLXML。getbinarystream();为例,来解析一个XML值与DOM解析器:
DocumentBuilder解析器= documentbuilderfactory。newinstance()。newdocumentbuilder();文件结果=解析器解析(二进制流);或解析一个XML值与SAX解析器来处理程序:
SAXParser解析器=工厂。newinstance()。newsaxparser();解析器解析(二进制流,myhandler);或解析一个XML值与StAX解析器:
newinstance() XMLInputFactory厂= XMLInputFactory;xmlstreamreader StreamReader =工厂。createxmlstreamreader(二进制流);
因为数据库可能使用一个优化的表示为XML,通过getsource()和setresult()访问值没有序列化流表示和解析XML导致改善加工性能。
例如,要获得一个DOM文档节点:
domsource domsource = SQLXML。GetSource(domsource。类);文件(文件)domsource getnode() =;或设置值为一个DOM文档节点mynode:
domresult domresult = SQLXML。setResult(domresult。类);domresult setnode(mynode);或,把SAX事件处理程序:
SAXSource SAXSource = SQLXML。GetSource(SAXSource。类);在getxmlreader() SAXSource XmlReader =;在setcontenthandler(myhandler);XmlReader。解析(SAXSource。getinputsource());或设定的结果值从SAX事件:
SAXResult SAXResult = SQLXML。setResult(SAXResult。类);gethandler() SAXResult ContentHandler ContentHandler =;startdocument() ContentHandler;将XML元素和属性设置为结果enddocument() ContentHandler;或者获得StAX事件:
staxsource staxsource = SQLXML。GetSource(staxsource。类);xmlstreamreader StreamReader = staxsource。getxmlstreamreader();或设定的结果值
staxresult staxresult = SQLXML。setResult(staxresult。类);staxresult getxmlstreamwriter() XMLStreamWriter StreamWriter =;StAX事件:或者,在使用XSLT xsltfile输出到文件resultfile XML值执行XSLT转换:
文件xsltfile =新的文件(“a.xslt”);文件myfile =新的文件(“结果。XML”);变压器的XSLT = transformerfactory。newinstance()。newtransformer(新StreamSource(xsltfile));源= SQLXML GetSource(空);结果=新StreamResult(来);XSLT变换(来源、结果);或者评价一个XPath表达式的XML值:
XPath XPath = xpathfactory。newinstance()。newxpath();domsource domsource = SQLXML。GetSource(domsource。类);文件(文件)domsource getnode() =;字符串表达式=“/富/ @吧”;barvalue = XPath字符串。评价(表达、文档);设置XML值是由于XSLT转换:
文件的源文件为新文件(源”。XML”);变压器的XSLT = transformerfactory。newinstance()。newtransformer(新StreamSource(xsltfile));源streamsource =新StreamSource(源文件);结果= SQLXML setResult(空);XSLT变换(streamsource,结果);任何源可以转化为结果利用恒等变换致电newtransformer()指定:
变压器身份= transformerfactory。newinstance()。newtransformer();源= SQLXML GetSource(空);文件myfile =新的文件(“结果。XML”);结果=新StreamResult(来);恒等变换(源,结果);写一个源的内容输出到标准输出:Z- ca4fa383-19a6-4506-86a3-c88763f85847创建从一domresult一domsource:
domsource domsource =新domsource(domresult。getnode());
不完整的或无效的XML值可能会导致一个SQLException当设置或异常时可能出现的execute()发生。所有的数据流必须在execute()发生或不将被关闭。
读写XML值或从SQLXML对象最多只能发生一次。可读性和不可读性的概念状态确定是否读取原料药中的一个将返回一个值或抛出一个异常。概念状态的可写和不可写确定如果一个书面的API将设定值或抛出一个异常。
从可读的状态移动到不可读的一free()或任何阅读API被称为:getbinarystream(),getcharacterstream(),getsource(),和getstring()。实现也可以改变状态,不可当这发生的时候。
从可写状态移动到不可写一次free()或任何书写的API被称为:setbinarystream(),setcharacterstream(),setresult(),和setstring()。实现也可能会改变状态,当发生这种情况时不可读。
在SQLXML
接口的所有方法都必须完全执行如果JDBC驱动程序支持的数据类型。
javax.xml.parsers
,
javax.xml.stream
,
javax.xml.transform
,
javax.xml.xpath
Modifier and Type | Method and Description |
---|---|
void |
free()
此方法关闭此对象,并释放它所持有的资源。
|
InputStream |
getBinaryStream()
检索XML值指定这个SQLXML实例作为流。
|
Reader |
getCharacterStream()
检索XML值指定这个SQLXML实例作为java.io.reader对象。
|
<T extends Source> |
getSource(类<T> sourceClass)
返回一个指定的阅读XML值这个SQLXML实例源码。
|
String |
getString()
返回一个字符串表示的XML值指定这个SQLXML实例。
|
OutputStream |
setBinaryStream()
检索一个流,可以用来写这个SQLXML实例表示的XML值。
|
Writer |
setCharacterStream()
检索一个流来写这个SQLXML实例表示的XML值。
|
<T extends Result> |
setResult(类<T> resultClass)
返回设置XML值指定这个SQLXML实例结果。
|
void |
setString(String value)
集的XML值指定这个SQLXML实例给定字符串表示。
|
void free() throws SQLException
free
一直叫,任何试图调用其他比
free
将导致
SQLException
抛出一个方法。如果
free
调用多次,以
free
随后电话被视为一个空操作。
SQLException
-如果有一个错误使XML值。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
InputStream getBinaryStream() throws SQLException
SQL的XML对象变为不可读的调用此方法时,也可能成为不可写取决于执行。
SQLException
-如果有处理XML值的误差。如果状态不可读,则引发异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
OutputStream setBinaryStream() throws SQLException
SQL的XML对象变为不可写入调用此方法时,也可能成为不可读性取决于执行。
SQLException
-如果有处理XML值的误差。如果国家不可抛异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Reader getCharacterStream() throws SQLException
SQL的XML对象变为不可读的调用此方法时,也可能成为不可写取决于执行。
SQLException
-如果有处理XML值的误差。例外的getcause()方法可以提供一个更详细的例外,如果流不包含有效字符。如果状态不可读,则引发异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Writer setCharacterStream() throws SQLException
SQL的XML对象变为不可写入调用此方法时,也可能成为不可读性取决于执行。
SQLException
-如果有处理XML值的误差。例外的getcause()方法可以提供一个更详细的例外,如果流不包含有效字符。如果国家不可抛异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
String getString() throws SQLException
SQL的XML对象变为不可读的调用此方法时,也可能成为不可写取决于执行。
SQLException
-如果有处理XML值的误差。例外的getcause()方法可以提供一个更详细的例外,如果流不包含有效字符。如果状态不可读,则引发异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
void setString(String value) throws SQLException
SQL的XML对象变为不可写入调用此方法时,也可能成为不可读性取决于执行。
value
- XML值
SQLException
-如果有处理XML值的误差。例外的getcause()方法可以提供一个更详细的例外,如果流不包含有效字符。如果国家不可抛异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
<T extends Source> T getSource(类<T> sourceClass) throws SQLException
XML解析器源将默认名称空间处理上。源的systemid是依赖于实现的。
SQL的XML对象变为不可读的调用此方法时,也可能成为不可写取决于执行。
注意,SAX是一个回调的架构,所以返回SAXSource应该设置一个内容处理程序将从解析收到的SAX事件。内容处理程序将获得基于XML的内容回调。
SAXSource SAXSource = SQLXML。GetSource(SAXSource。类);在getxmlreader() SAXSource XmlReader =;在setcontenthandler(myhandler);XmlReader。解析(SAXSource。getinputsource());
T
-类仿照这个类对象的类型
sourceClass
-源类,或空。如果类为空,则将返回一个特定于特定于供应商的源代码实现。下面的类是在最低限度的支持:
javax.xml.transform.dom.domsource -返回一个domsourcejavax.xml.transform.sax.saxsource -返回一个SAXSourcejavax.xml.transform.stax.staxsource -返回一个staxsourcejavax.xml.transform.stream.streamsource -返回一个streamsource
SQLException
-如果有处理XML值或如果不支持这个功能错误。例外的getcause()方法可以提供更详细的异常,如果出现一个XML解析器的例外。如果状态不可读,则引发异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
<T extends Result> T setResult(类<T> resultClass) throws SQLException
结果systemid是依赖于实现的。
SQL的XML对象变为不可写入调用此方法时,也可能成为不可读性取决于执行。
注意,SAX是一个回调的架构和返回的SAXResult具有内容处理程序指定将接收基于XML内容的SAX事件。用XML文档的内容调用内容处理程序来分配值。
SAXResult SAXResult = SQLXML。setResult(SAXResult。类);ContentHandler ContentHandler = SAXResult。getxmlreader()。getcontenthandler();startdocument() ContentHandler;将XML元素和属性设置为结果enddocument() ContentHandler;
T
-类仿照这个类对象的类型
resultClass
-结果的类,或空。如果resultclass是空的,特定于供应商的实现将返回结果。下面的类是在最低限度的支持:
javax.xml.transform.dom.domresult -返回一个domresultjavax.xml.transform.sax.saxresult -返回一个SAXResultjavax.xml.transform.stax.staxresult -返回一个staxresultjavax.xml.transform.stream.streamresult -返回一个StreamResult
SQLException
-如果有处理XML值或如果不支持这个功能错误。例外的getcause()方法可以提供更详细的异常,如果出现一个XML解析器的例外。如果国家不可抛异常。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.