如何处理事务
来源:互联网 发布:unity3d发布到网页 编辑:程序博客网 时间:2024/05/24 01:01
EMP提供了很多的扩展途径,而在这些扩展中经常会存在着数据库的操作,这就要求开发人员对EMP的事务处理有一定的了解。
1、在业务操作单元(EMPAction)中通过配置方式处理事务
EMPAction在EMP的架构体系中是对事务进行控制的最小单元,对于EMPAction的事务处理可通过实现相应接口并采用配置化的方式实现。当扩展的业务操作单元(EMPAction)需要对事务进行控制时,可以将相应的扩展类继承JDBCAction。然后在业务逻辑中设置该业务操作单元的trxType属性(TRX_REQUIRED表示全局事务,TRX_REQUIRE_NEW表示独有事务)。
如果没有继承JDBCAction,那么也可以在扩展的业务操作单元(EMPAction)增加transactionType的setter和getter方法:
public void setTransactionType(String value) {
if ("TRX_REQUIRED".equals(value))
this.trxType = EMPTransactionDef.TRX_REQUIRED;
else if ("TRX_REQUIRE_NEW".equals(value))
this.trxType = EMPTransactionDef.TRX_REQUIRE_NEW;
}
public EMPTransactionDef getTransactionDef() {
return new EMPTransactionDef(trxType);
}
2、在业务操作单元(EMPAction)中手工操作事务
EMP除了支持通过手工的方式进行事务的配置以外,开发人员还可以在代码中直接调用相应的接口进行事务的处理
EMPTransactionManager transactionManager = (EMPTransactionManager) context.getService(EMPConstance.TRX_SVC_NAME); //获得事务管理器
EMPTransaction transaction = transactionManager.getTransaction(new EMPTransactionDef(EMPTransactionDef.TRX_REQUIRE_NEW));//启动新的事务,如果要获得全局的事务则使用EMPTransactionDef.TRX_REQUIRE
try{
//在取得事务之后,取数据库连接
Connection connection = ConnectionManager.getConnection(dataSource);
//数据库操作
//如果操作结束需要提交事务,则调用下面代码
transactionManager.commit(transaction);
}catch(异常){
//如果发生异常后,立刻回滚,则调用下面代码
transactionManager.rollback();
//如果是全局事务,且希望操作全部结束后再回滚,则调用下面的代码
transactionManager.setRollBackOnly();
}
3、其它扩展的接口中操作事务
与EMPAction一样,开发人员可以在代码中直接调用相应的接口进行事务的处理(其中EMPService的层次比EMPAction低,是不能直接针对事务进行处理的),调用的方式与上述一致。手工的操作事务能够带来非常灵活的功能实现,但是推荐的方式还是通过调用业务逻辑构件的方式来实现
- Java如何处理事务
- 如何处理事务
- 学习Java如何处理事务
- 什么叫事务?Java如何处理事务呢?
- 什么叫事务?Java如何处理事务呢?
- MS-SQL 如何处理嵌套事务
- MS-SQL 如何处理嵌套事务
- MS-SQL 如何处理嵌套事务
- MS-SQL 如何处理嵌套事务
- 分布式服务的事务如何处理
- 分布式服务的事务如何处理
- 关于Sql Server数据库中的事务如何处理
- 分布式系统中数据库的事务如何处理?
- [异步][事务][流程][设计]同步当场处理并返回处理结果,异步后如何返回. 如何解决?
- 事务日志处理
- Java 处理事务精要
- 分布式事务的处理
- 分布式事务故障处理
- 如何在系统启动时处理非平台的初始化操作
- 通过回调方法初始化Service
- 如何在EMP2.2版本中使用pop标签
- 如何在EMP2.2版本的前端列表组件中处理单、复选框
- JBuilder+Hibernate+Tomcat快速入门
- 如何处理事务
- 有关在EMP中使用日志分析工具(gardener.jar)的说明
- 计算大数的阶乘(ZZ)
- 有关EMP压力测试的常见问题
- 今天又被k掉了
- IEnumerable与IEnumerator区别
- JDBC连接sql server2000数据库详解
- 一个简单的杨辉三角,只能用1维数组来完成~!
- jdbc连接sql server2000数据库问题总结