操纵JDBC4.0操作XML典范数据[Java编程]
本文“操纵JDBC4.0操作XML典范数据[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在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数据的代码以下:
以上是“操纵JDBC4.0操作XML典范数据[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |