快速业务通道

Struts的概念及体系结构与工作原理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
下,数据库常常表现出速度缓慢且不具有响应性。此时,在大多数情况下,重新初始化该连接也许是解决这种问题的唯一方法。在JDBC 4.0以前版本时,没有办法来区分一个旧连接和一个已经关闭的连接;而新式API则在Connection接口中添加了一个isValid()方法用来查询是否连接仍然有效。

另外,数据库连接经常在客户端被共享;并且有时,一些客户使用的资源比另一些客户多,这可能会导致一种"饥饿"现象。为此,Connection接口中定义了一个setClientInfo()方法以定义客户端特定的属性,这可以被客户端用于分析和监控资源利用情况。

五、有关RowId方面的改进

在许多数据库中,RowId都被用作唯一标识一个表中行的方法。在查询条件中使用RowId往往是检索数据的最快方法,特别是在Oracle和DB2数据库情况下。现在,既然java.sql.RowId是一种内嵌的Java类型;那么,你就可以充分利用与其用法相关的性能优点。当表中存在重复的数据并且一些行数据相同时,RowId是标识唯一行的最有效的方法。然而,还要注意到,RowId在一个表中是唯一的,而对于整个数据库来说并非如此;它们可能发生变化并且不为所有数据库所支持。典型情况下,RowId不是跨数据源可移植的;因此,当使用多种数据源时应该慎重。

在数据源定义的生命周期内,只要一行未被删除,那么该行相应的RowId就一直保持有效。我们可以调用DatabaseMetadata.getRowIdLifetime()方法来决定RowId的生命周期。这个方法的返回类型是一个枚举类型。现在,把所有这些枚举类型总结到如下的表格中。

RowIdLifetime枚举类型 定义
ROWID_UNSUPPORTED 数据源不支持RowId类型
ROWID_VALID_OTHER 实现依赖的生命周期
ROWID_VALID_TRANSACTION 生命周期至少包含事务
ROWID_VALID_SESSION 生命周期至少包含会话
ROWID_VALID_FOREVER 无限制生命周期

探讨JDBC 4.0在设计和性能方面的改进(4)

时间:2010-12-29 天极 朱先忠

其中,只要没有删除行,那么ROWID_VALID_TRANSACTION,ROWID_VALID_SESSION和ROWID_VALID_FOREVER都定义为true。还要注意的是,如果一个行被删除和重新插入,那么RowId会被重新调整(这有可能在数据源中透明实现)。作为一个例子,在Oracle中,如果在一个分区表上设置"enable row movement"语句,并且分区键的一个更新导致该行从一个分区移动到另一个分区,那么RowId将改变。即使在没有设置"enable row movement"标志并且"alter table table_name"发生改变时,RowId也能够改变。

ResultSet和CallableStatement接口都被更新-都包括了一个返回javax.sql.RowId类型的方法getRowID()。

列表3展示了如何从一个ResultSet和CallableStatement中检索RowId。

列表3.得到RowId

//从一个ResultSet检索RowId的方法签名: RowId getRowId (int columnIndex) RowId getRowId (String columnName) ... Statement stmt = con.createStatement (); ResultSet rs = stmt. ExecuteQuery (…); while (rs.next ()) {  ...  java.sql.RowId rid = rs.getRowId (1);  ... } //从一个CallableStatement检索RowId的方法签名: RowId getRowId (int parameterIndex) RowId getRowId (String parameterName) Connection con; ... CallableStatement cstmt = con.prepareCall (…); ... cstmt.registerOutParameter (2, Types.ROWID); ... cstmt.executeUpdat

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号