权衡Apache Geronimo EJB事务选项,第2部分: Bean管理事务 - 编程入门网
/ Start our transaction here
ut.begin();
dbOneStatement.executeUpdate();
dbTwoStatement.executeUpdate();
// commit the transaction
ut.commit();
// cleanup
dbOneStatement.close();
dbTwoStatement.close();
dbOneConnection.close();
dbTwoConnection.close();
}
catch (Exception e) {
//something went wrong
try {
//rollback the exception
ut.rollback();
} catch (SystemException se) {
//Rollback has failed!
throw new EJBException
("Attempted to rollback, but it failed: "
+ se.getMessage());
}
//Lastly throw an exception to report what went wrong
throw new EJBException
("Transaction failed: " + ex.getMessage());
}
}
如您所见,JTA bean 管理的事务的基本实现非常简单。在事务启动、提交和回滚时,所有您要做的就是明确控制事务。 权衡Apache Geronimo EJB事务选项,第2部分: Bean管理事务(3)时间:2011-03-13 IBM Jonathan SagorinJDBC 事务 如果您过去曾经编写过 JDBC 代码,那么实现 JDBC 事务对于您来说应该很熟悉。只有在具有现有的 JDBC 代码,并且必须在企业 bean 实现中使用它时,才使用 JDBC 事务,不过,这被认为是传统处理方式。让我们更近一步了解这类事务。 在执行一个正常地 JDBC 更新时,所有 SQL 语句都被自动提交。为了自己控制事务边界,在使用前可通过在 Connection 对象上发布 setAutoCommmit(false) 语句将该功能关闭。如果需要更好控制 SQL 执行,请使用该选项。 由 java.sql.Connection 接口提供 commit 和 rollback 方法,并由数据库的事务管理器(而不是 EJB 容器)来控制 JDBC 事务。下面的 清单 3 阐明了这一点,显示了一个虚构的会话 bean 方法,该方法使用标准 JDBC 预备语句更新数据库中客户的名字。 注意,这里没有抽象。所有代码都是使用顶级 bean 编写的。不能使用重用和零委托。请不要将这作为一种方法使用。记住,我将演示如何声明事务边界,以便更好地实现 JDBC 遗留代码的事务控制。 清单 3. JDBC 事务的用法
因此可以用来封装遗留 JDBC 代码的常用方法是: 在连接对象上将 setAutoCommit 属性设置为 false。 在执行 SQL 之后调用连接上的 commit 方法。 如果出现任何错误,则调用连接上的 rollback 方法。 此外,JDBC 事务不是实现 be |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |