快速业务通道

JDBC优化数据库连接 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

JDBC优化数据库连接(2)

时间:2011-03-23

恰当地利用事务

在更新动态数据库表和数据时常常会遗忘的一个方面,就是在向超过一个表示一个逻辑事务的表更新或插入数据时,这个事务应该反映到所有的表中,或者在碰到事务失败时,通过“回滚”该事务而在每一个表中都没有反映。

一些核心的 JDBC 包支持了四种事务隔离模式(transaction isolation mode),这些模式允许程序指定它们想事务表现出怎样的行为。大多数程序都至少支持两种模式:“读取提交(read committed)”(缺省值)和“可序列化的(serializable)”。当不可重复读取应该允许在多个查询之间由一个事务作出的修改对于另一个事务可见时,请使用“读取提交”;要使由另一个事务作出的修改在一个查询运行时成为可见的,请使用幻象读取(phantom read)。当您需要一个跨多个操作前后完全一致的数据库视图时,就应该使用更为严格的“可序列化的”设置。把连接的自动提交设置为“假”(autocommit = "false"),记住这一点是很有用的。

以下是构建一个连接并设置其各个属性参数的示例:

Connection con = null;    try {    dtsr = (DataSource ");    pConn = dtsr.getConnection("", "");    pConn.setAutoCommit(false); // transaction are not committed uponm execution    pConn.setTransactionIsolation(    Connection.TRANSACTION_SERIALIZABLE);    // pConn is pooled connection    pConn.commit();    } catch (Exception ignored) {    try { pConnn.rollback(); } catch (SQLException esgl) {}    } finally {    if(pConn != null) {    pConn.setAutoCommit(true); //reset autocommit    pConn.close();    }    }

您也可以利用一个可选的 JDBC 包 — JTA(Java Transaction API),它允许容易地和完全独立的事务服务器进行集成。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号