从 Microsoft SQL Server JDBC Driver 2.0 开始,JDBC 驱动程序支持 JDBC 4.0 API,后者引入了 java.sql.SQLXML 接口。SQLXML 接口定义与 XML 数据交互以及操作 XML 数据的方法。SQLXML 数据类型映射到 SQL Server xml 数据类型。

SQLXML 接口提供用于以 StringReaderWriter 或者 Stream 形式访问 XML 值的方法。XML 值还可以通过 Source 来访问,或者设置为 Result,两者与 XML 分析器 API(如文档对象模型 (DOM)、Simple API for XML (SAX) 和 Streaming API for XML (StAX))以及 XSLT 转换和 XPath 一起使用。

下表介绍了 SQLXML 接口中定义的方法:

方法语法 方法说明

void free()

此方法释放 SQLXML 对象以及它所持有的资源。

InputStream getBinaryStream()

返回一个用于从 SQLXML 中读取数据的输入流。

Reader getCharacterStream()

XML 数据作为 java.io.Reader 对象或字符流返回。

T extends Source T getSource(Class<T> sourceClass)

返回一个 Source,用于读取此 SQLXML 对象所指定的 XML 值。

注意: getSource 方法支持下列源:javax.xml.transform.dom.DOMSource、javax.xml.transform.sax.SAXSource、javax.xml.transform.stax.StAXSource 和 java.io.InputStream。

String getString()

返回此 SQLXML 对象所指定的 XML 值的字符串表示形式。

OutputStream setBinaryStream()

检索可用于写入此 SQLXML 对象所表示的 XML 值的流。

Writer setCharacterStream()

返回可用于写入此 SQLXML 对象所表示的 XML 值的流。

T extends Result T setResult(Class<T> resultClass)

返回一个 Result,用于设置此 SQLXML 对象所指定的 XML 值。

注意: setResult 方法支持下列源:javax.xml.transform.dom.DOMResult、javax.xml.transform.sax.SAXResult、javax.xml.transform.stax.StaxResult 和 java.io.OutputStream。

void setString(String value)

将此 SQLXML 对象所指定的 XML 值设置为指定的 String 表示形式。

应用程序只能从/向 SQLXML 对象中读取/写入 XML 值一次。

调用 free() 方法后,SQLXML 对象将变为无效,既不可读也不可写。如果应用程序尝试对该 SQLXML 对象调用 free() 方法以外的方法,将引发异常。

当应用程序调用下列任意 getter 方法时,SQLXML 对象将变为既不可读也不可写:getSourcegetCharacterStreamgetBinaryStreamgetString

当应用程序调用下列任意 setter 方法时,SQLXML 对象将变为既不可写也不可读:setResultsetCharacterStreamsetBinaryStreamsetString

请参阅

支持 XML 数据