`

bboss persistent事务管理介绍 (二)

阅读更多

4.9.5 事务管理的相关接口

事务管理器:com.frameworkset.orm.transaction.TransactionManager ,每个

接口表:

名称

功能描述

说明

 

 

public void begin() throws TransactionException

开启一个事务,如果当前上下文有事务则加入,如果没有则创建新的事务

Begin方法只能在TransactionManager的同一个对象实例上调用一次,超过一次将抛出事务异常

 

 

public

void

begin(int tx_type) throws TransactionException

开启一个事务,参数tx_type值的取值范围为:

NEW_TRANSACTION-开启新事务,隔离上下文事务

REQUIRED_TRANSACTION-有则加入事务,没有就开启新事物

MAYBE_TRANSACTION-有则加入事务,没有就不开启事务

NO_TRANSACTION-不开启事务也不加入上下文事务

 

 

 

public void commit() throws RollbackException

提交事务,如果是嵌套子事务,则事务计数器递减直至为0时提交全部嵌套事务,只有所有子事务都提交成功后才算提交成功

 

 

 

public void rollback() throws RollbackException

回滚事务,如果事务执行过程当中出现异常,则回滚事务

 

 

 

public

JDBCTransaction suspend()

 throws SystemException

挂起事务,挂起当前正在执行的事务是指暂停当前线程中运行的事务。如果在执行当前事务之前有事务挂起则恢复之前挂起的事务

 

 

 

public JDBCTransaction suspendAll() throws SystemException

挂起所有的事务,挂起所有的事是指将当前事务挂起同时不恢复之前事务,即在执行恢复之前的当前环境没有事务关联。

 

 

 

 

public

void resume(JDBCTransaction tx) throws InvalidTransactionException,

 

                     IllegalStateException, SystemException

恢复之前挂起的事务

 

 

 

 

 

4.9.7应用程序使用事务框架进行编程的两种方式

应用程序使用事务框架进行编程的具有以下两种方式

l       可编程的事务管理模式

可编程的事务管理模式就是说可以直接在业务程序中直接调用事务管理的接口来进行事务处理,在这种模式下同样可以采用两种方式进行编程,一种是程序员直接在代码中创建事务对象,开启事务,提交或者回滚事务;一种是通过系统提供的事务管理模板接口来编写事务控制程序。前者容易造成事务泄漏(没有被正常的提交或者回滚),但是使用起来比较直观,后者将事务管理的功能全部封装在执行模板方法的功能类中,开发人员只需在模板方法中编写包含数据库操作的业务功能即可,不会出现事务泄漏的情况。

 

l       声明式的事务管理模式

声明式的事务管理模式就是指将业务组件的事务控制策略全部通过配置文件的来声明实现,业务组件本身无需对事物进行管理,具体进行配置的规则简单描述如下:

第一步 将业务组件配置到配置文件中

第二步 需要控制事务的方法名添加到配置文件中

第三步 定义事务控制策略,即在什么情况下事务执行成功,什么情况下事务执行失败,也就说需要定义失败的策略,失败策略一般通过定义一些特定的异常来声明,也可以不定义异常,默认所有的异常都会导致事务回滚。

声明性事务的实现是基于系统中提供的轻量级aop框架来实现的,通过该框架可以对业务组件中所有需要进行事务控制的方法进行实时动态拦截嵌入事务的控制功能,具体的细节请参照《aop框架的使用文档》。

4.9.8可编程事务使用实例

1.简单的事务处理-【开始】>【提交】>【回滚】

TransactionManager tm = new TransactionManager();   

           try {

              tm.begin();

              log("delete befer" ,tm.getStatus());

             

              DBUtil dbUtil = new DBUtil();

              dbUtil.executeDelete("delete from test");

              dbUtil.executeDelete("delete from test1");

              log("delete after" ,tm.getStatus());

              tm.commit();

              log("delete commit after" ,tm.getStatus());

             

           } catch (TransactionException e) {

              try {

                  tm.rollback();

              } catch (RollbackException e1) {

                  // TODO Auto-generated catch block

                  e1.printStackTrace();

              }

              e.printStackTrace();

           } catch (Exception e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

              try {

                  tm.rollback();

              } catch (RollbackException e1) {

                  // TODO Auto-generated catch block

                  e1.printStackTrace();

              }

           }

2.事务挂起处理-【开始】>【挂起】>【恢复】>【提交】>【回滚】

              TransactionManager tm = new TransactionManager();

      

       try {

           //开始事务,begincommit之间的各种数据库操作都包含在事务中,除非中间有事务的挂起和中断,但是中断恢复后事务将继续,

           //或者另外在事务执行过程如果开启了新的事务,则当前事务将被中断

           tm.begin();

           log("delete before",tm.getStatus());

          

          

           DBUtil dbUtil = new DBUtil();

           //执行两个删除操作,如果一个失败整个事务就回滚

           dbUtil.executeDelete("delete from test");

           dbUtil.executeDelete("delete from test1");

           //挂起事务,挂起后的数据库操作将不受事务控制直到事务被恢复

           JDBCTransaction tx = tm.suspend();

           try

           {

              dbUtil.executeInsert("insert into test1(name) values('biaoping.yin')");

           }

           catch(Exception e)

           {

             

           }

           //恢复事务,之后的事务将加入之前被中断的事务当中

           tm.resume(tx);

           log("delete after",tm.getStatus());

分享到:
评论

相关推荐

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    3. **事务管理**:在TestTransaction.sql这个文件名中,我们可以推测BBoss Persistent也包含了事务管理功能。在处理CLOB和BLOB数据时,事务是至关重要的,因为它们确保了数据的一致性和完整性。如果在操作过程中发生...

    bboss mvcdemo 下载地址

    4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...

    bboss会话共享培训文档

    bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...

    springboot整合bboss es增删改查测试demo代码

    展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:eshelloword-spring-boot-starter\src\test\java\org\bboss\elasticsearchtest\springboot\BBossESStarterTestCase.java 单集群演示功能...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿.pptx

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿

    bboss ioc配置文件中使用外部属性文件介绍

    本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **二、BBoss介绍** BBoss 是一个针对 Elasticsearch 的企业级开发框架,它提供了丰富的 Java API,使得开发者可以更简单地进行索引管理、查询构建、结果分析等操作。BBoss 还支持多版本兼容,方便应对 Elasticsearch...

    bboss+es基本操作示例.zip

    除了基础操作外,bboss还提供了批量操作、事务控制、性能优化、异常处理等高级特性。例如,可以使用bboss的批处理API一次性处理大量数据,提高数据导入效率。 7. **应用场景** 结合bboss和Elasticsearch,开发者...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss-db-elasticsearch-tool-master_java_

    1. **事务管理**:支持数据库的ACID(原子性、一致性、隔离性、持久性)特性,确保数据的一致性和完整性。 2. **缓存机制**:提供缓存策略,减少对数据库的直接访问,提高性能。 3. **批量操作**:支持数据的批量...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    为了便于管理和监控,bboss-datatran 提供了可视化的操作界面,用户可以查看作业状态、监控性能指标、调整作业配置等。此外,它还支持API接口,方便集成到自动化运维流程中。 ### 社区支持 作为开源项目,bboss-...

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

    bboss-soa.jar

    官方版本,亲测可用

    J2EE企业级开源框架bboss v5.0.6.8

    bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...

    bboss+easyui帮助文档比较详细

    1. **BBoss框架入门**:介绍如何安装配置BBoss,以及创建第一个项目的基本步骤。 2. **BBoss核心组件讲解**:详细解析BBoss的各个模块,如DAO、Service、权限控制等的使用方法。 3. **EasyUI组件使用**:讲解如何在...

Global site tag (gtag.js) - Google Analytics