Struts的概念及体系结构与工作原理 - 编程入门网
改进异常处理能力
在JDBC API 4.0以前的版本中,异常处理功能极其有限。对于所有类型的错误都会笼统地抛出一个SQLException异常-根本不存在异常的详细分类,且没有相应的层次定义。所以这时,你唯一能够得到一些有意义的信息的办法是检索和分析SQLState值。另一方面,SQLState值及其相应的含义会因不同的数据源而有所改变;因此,要想追踪到问题的"根部"并且有效地处理异常是一件非常乏味的任务。 JDBC 4.0改进了异常处理能力,同时也缓解了一些前面提到的问题。其中的关键改进有: · 把SQLException分成短暂异常和非短暂异常两种类型 · 支持链式异常 · 实现Iterable接口 当一个以前失败的操作检索成功时,将会抛出SQLTransientException异常;而在检索不成功时将会抛出SQLNonTransientException异常-除非导致SQLException的原因得到纠正。 图1展示了子类SQLTransientException和SQLNonTransientException。 图1.SQL异常类型:短暂型和非短暂型 另一方面,在新的API中,加入了对链式异常的支持。新的异常基类构造器中添加了额外参数以捕获异常的可能原因。例如,在一个循环中可能存在SQLException遍历;这时,开发人员可以调用getCause()来决定异常的可能原因。如果获取的结果的确是产生这些异常的原因,那么getCause()方法能够返回一个非SQLException。 现在,SQLException类实现了Iterable接口并且支持J2SE 5.0的for each循环。 列表2描述了新的for-each-loop结构的用法: 列表2.For each循环结构
探讨JDBC 4.0在设计和性能方面的改进(3)时间:2010-12-29 天极 朱先忠三、支持XML数据类型 如今,大量的数据行以XML格式存在。通过在SQL 2003规范中定义了一种标准XML类型,现在大多数数据库都已提供对XML数据类型的支持。通过加入这样一种数据类型,一个XML数据集或文档可能成为一个数据库表中的一行的一个字段或列值。在JDBC 4.0以前,也许在JDBC框架内操作这样的数据的最好的方法是使用来自于驱动程序供应商的专利扩展产品或作为一种CLOB类型来存取它。 现在,JDBC 4.0把SQLXML定义为映射数据库SQL XML类型的Java数据类型。这种API支持把一个XML类型作为一个字符串或作为一个StAX流进行处理。Streaming API for XML(在JSR 173规范中确立)基于Iterator模式,它与基于Observer模式的Simple API for XML Processing(SAX)形成对照。 调用Connection对象的createSQLXML()方法就能够创建一个SQLXML对象。开始时这是一个空对象;因此,通过使用setString()方法或createXMLStreamWriter()方法把一个XML流关联到该对象可以把数据依附到其上。同样,XML数据可以从一个SQLXML对象中进行检索,这是通过使用getString()或createXMLStreamReader()方法把一个XML流与该对象关联实现的。 ResultSet,PreparedStatement和CallableStatement接口中都提供了getSQLXML()方法用于检索SQLXML数据类型。另外,PreparedStatement和CallableStatement中还引入了setSQLXML()方法用于把SQLXML对象作为参数添加。 当对象在长时间运行的事务中保持有效时,可以通过调用上面这些接口的free()方法来释放SQLXML资源;事实证明这是一种比较适当的方法。另外,开发者可以在一个数据源上调用DatabaseMetaData的getTypeInfo()方法来检查数据库是否支持SQLXML数据类型,因为这个方法能够返回它支持的所有数据类型。 四、改进Connection接口 Connection接口定义也得到了增强,用于更高效地分析连接状态。 有时数据库连接是不可用的,尽管可能不必关闭这些连接并对之进行垃圾回收。处于这样的情况 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |