消除JDBC的瓶颈 - 编程入门网
新的行数,不过有时我们可能需要确认一个更新的产生。UpdateProcessor获得更新行的数据,并且可以对行的数目进行任何类型的确认或者记录:
如果一个更新的调用必须至少更新一行,这样实现UpdateProcessor的对象可以检查更新的行数,并且可以在没有行被更新的时候抛出一个特定的异常。或者,我们可能需要记录下更新的行数,初始化一个结果处理或者触发一个更新的事件。你可以将这些需求的代码放在你定义的UpdateProcessor中。你应该知道:各种可能的处理都是存在的,并没有任何的限制,可以很容易得集成到架构中。 消除JDBC的瓶颈(5)时间:2010-09-13更新的例子 我将继续使用上面解释的User模型来讲述如何更新一个用户的信息: 首先,构造SQL语句:
接着,构造UpdateProcessor,我们将用它来检验更新的行数,并且在没有行被更新的时候抛出一个异常:
最后就写编写执行更新的方法:
如前面的例子一样,我们无需直接处理SQLExceptions和Connections就执行了一个更新的操作。 消除JDBC的瓶颈(6)时间:2010-09-13事务 前面已经说过,我对其它的SQL架构实现都不满意,因为它们并不拥有预定义语句、独立的结果集处理或者可处理事务。我们已经通过buildStatement() 的方法解决了预处理语句的问题,还有不同的处理器(processors)已经将结果集的处理分离出来。不过还有一个问题,我们的架构如何处理事务呢? 一个事务和一个独立SQL调用的区别只是在于在它的生命周期内,它都使用同一个连接,还有,自动提交标志也必须设置为off。因为我们必须有一个方法来指定一个事务已经开始,并且在何时结束。在整个事务的周期内,它都使用同一个连接,并且在事务结束的时候进行提交。 要处理事务,我们可以重用SQLProcessor的很多方面。为什么将该类的executeUpdate() 和handleUpdate()独立开来呢,将它们结合为一个方法也很简单的。我这样做是为了将真正的SQL执行和连接管理独立开来。在建立事务系统时,我们必须在几个SQL执行期间对连接进行控制,这样做就方便多了。 为了令事务工作,我们必须保持状态,特别是连接的状态。直到现在,SQLProcessor还是一个无状态的类。它缺乏成员变量。为了重用SQLProcessor,我们创建了一个事务封装类,它接收一个SQLProcessor并且透明地处理事务的生命周期。 具体的代码是:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |