Struts的概念及体系结构与工作原理 - 编程入门网
下,数据库常常表现出速度缓慢且不具有响应性。此时,在大多数情况下,重新初始化该连接也许是解决这种问题的唯一方法。在JDBC 4.0以前版本时,没有办法来区分一个旧连接和一个已经关闭的连接;而新式API则在Connection接口中添加了一个isValid()方法用来查询是否连接仍然有效。
另外,数据库连接经常在客户端被共享;并且有时,一些客户使用的资源比另一些客户多,这可能会导致一种"饥饿"现象。为此,Connection接口中定义了一个setClientInfo()方法以定义客户端特定的属性,这可以被客户端用于分析和监控资源利用情况。 五、有关RowId方面的改进 在许多数据库中,RowId都被用作唯一标识一个表中行的方法。在查询条件中使用RowId往往是检索数据的最快方法,特别是在Oracle和DB2数据库情况下。现在,既然java.sql.RowId是一种内嵌的Java类型;那么,你就可以充分利用与其用法相关的性能优点。当表中存在重复的数据并且一些行数据相同时,RowId是标识唯一行的最有效的方法。然而,还要注意到,RowId在一个表中是唯一的,而对于整个数据库来说并非如此;它们可能发生变化并且不为所有数据库所支持。典型情况下,RowId不是跨数据源可移植的;因此,当使用多种数据源时应该慎重。 在数据源定义的生命周期内,只要一行未被删除,那么该行相应的RowId就一直保持有效。我们可以调用DatabaseMetadata.getRowIdLifetime()方法来决定RowId的生命周期。这个方法的返回类型是一个枚举类型。现在,把所有这些枚举类型总结到如下的表格中。
探讨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
|
||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |