`
toknowme
  • 浏览: 139921 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring Mybatis独立事务配置

 
阅读更多

在项目中有很多地方会使用到独立事务,下面以获取主键为例

 
(1)修改配置文件spring-mybatis.xml
 <!-- 开启事务支持 -->
 <tx:annotation-driven transaction-manager="transactionManager" />
 
 <!-- 拦截器方式配置事务 -->
 <!-- 定义service事务通知-->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <!-- 定义方法的过滤规则 -->
  <tx:attributes>
   <tx:method name="save*" propagation="REQUIRED" />
   <tx:method name="add*" propagation="REQUIRED" />
   <tx:method name="create*" propagation="REQUIRED" />
   <tx:method name="insert*" propagation="REQUIRED" />
   <tx:method name="update*" propagation="REQUIRED" />
   <tx:method name="merge*" propagation="REQUIRED" />
   <tx:method name="del*" propagation="REQUIRED" />
   <tx:method name="remove*" propagation="REQUIRED" />
   <tx:method name="put*" propagation="REQUIRED" />
   
   <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="count*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="list*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="*" propagation="SUPPORTS" read-only="true" />
   
   <!-- 获取主键开启独立事务 -->
   <tx:method name="getPKId" propagation="REQUIRES_NEW" />
  </tx:attributes>
 </tx:advice>  
 
 <!--AOP配置  -->
 <aop:config proxy-target-class="true">
  <!-- 适配切入点 和 事务的通知 -->
  <aop:pointcut id="txPointcut"
   expression="execution(* *..*SVImpl.*(..))" />
  <aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice" />
 </aop:config>
 
(2)服务层新增接口和方法
 
 
新增接口
ICommonSV
    新增方法
    public long getPKId(String tableName) throws Exception;
 
 
新增实现类
CommonSVImpl
    新增方法
    public long getPKId(String tableName) {
  long seq = -1;
  StringBuilder sb = new StringBuilder();
  sb.append(" SELECT ");
  sb.append(tableName).append("$SEQ.NEXTVAL SEQ ");
  sb.append(" FROM DUAL ");
  Map map = new HashMap();
  try {
   map = executeQuerySql(sb.toString()).get(0);
  } catch (Exception e) {
   throw new ZCrmException("["+tableName+"]获取主键失败:"+e.getMessage());
  }
  seq = Long.parseLong(map.get("SEQ").toString());
  log.info(tableName+"$SEQ:"+seq);
  return seq;
 }
 
 
@Autowired
 private ICommonDAO ICommonDAO;
 
 private synchronized List<Map> executeQuerySql(String sql) throws Exception {
  List<Map> o = null;
   o = ICommonDAO.executeQuerySql(new SQLAdapter(sql)); 
  return o;
 }
 
0
2
分享到:
评论

相关推荐

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...

    Spring+MyBatis企业应用实战(含源码)(pdf已分割)

    在Spring与MyBatis的整合部分,书籍可能会介绍Spring的DataSourceTransactionManager和MyBatis的SqlSessionFactory配置,以及如何通过MyBatis-Spring库无缝集成这两者。此外,还会涉及Spring的声明式数据访问对象...

    Spring 3+mybatis jar

    - 易于测试:Spring的DI使得单元测试变得简单,MyBatis的SQL独立性有利于数据库相关的测试。 - 灵活性:MyBatis允许直接编写SQL,能够充分利用数据库特性,避免ORM的性能损失。 - 事务管理:Spring提供的事务管理...

    spring,mybatis 对数据源配置与管理

    3. **事务配置示例说明** - **context命名空间**:使用`&lt;context:component-scan&gt;`标签来指定组件扫描的包路径,而`&lt;context:property-placeholder&gt;`用来加载配置文件。 - **DataSource配置**:为每个数据源定义了...

    springmybatis

    mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...

    spring mybatis springmvc jar包

    2. **配置整合**:在Spring的配置文件中,需要添加MyBatis和SpringMVC的配置,包括数据源、SqlSessionFactory、MapperScannerConfigurer(扫描Mapper接口)、DispatcherServlet配置等。 3. **MyBatis-Spring桥接**:...

    spring+mybatis+struts

    MyBatis与Spring的集成非常紧密,可以通过Spring的事务管理器进行事务控制,并且可以方便地实现DAO层的注入。 **Struts框架** Struts是基于MVC(Model-View-Controller)设计模式的Web应用框架。它负责处理HTTP请求...

    SpringMVC Spring MyBatis 框架整合 Annotation Maven Project

    在IT行业中,SpringMVC、Spring和MyBatis是三个非常重要的Java开发框架,它们各自在Web应用的各个层面上发挥着关键作用。本项目是一个整合了这三个框架的基于Annotation和Maven的项目,旨在提供一种高效、灵活的开发...

    mybatis 基础代码(非spring)

    通过这个非Spring环境下的MyBatis基础项目,你可以了解到MyBatis如何独立工作,理解其核心机制,为后续整合Spring或其他框架打下坚实的基础。在实践中不断摸索和优化,将使你更加熟练地运用MyBatis解决实际问题。

    springmybatis.zip

    - **mybatis-config.xml**:配置 MyBatis 的全局配置文件,包括数据源、事务管理器等。 - **pom.xml**:添加 MyBatis 相关依赖。 - **Mapper 接口与 XML 映射文件**:定义数据库操作的接口,每个方法对应一个 SQL...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    Spring与Mybatis的整合可以让我们方便地进行数据库操作,并通过Spring的事务管理确保数据一致性。 Spring MVC是Spring框架的一部分,用于构建Web应用程序。它处理HTTP请求,将请求映射到控制器,然后通过模型和视图...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    SSM(Spring、SpringMVC和MyBatis)是一个经典的Java Web开发框架组合,用于构建高效、灵活且可维护的企业级应用。这个框架整合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming...

    SpringMVC4+Spring4+mybatis3整合所需包

    Spring MVC、Spring 和 MyBatis 是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring MVC 处理Web层的请求与响应,Spring 提供依赖注入和事务管理等核心功能,而MyBatis则专注于数据库操作。...

    springmybatis:spring和mybatis的结合,maven构造,加入junit测试

    在"springmybatis"项目中,Junit被用来对业务逻辑进行单元测试,确保每个独立的组件都按照预期工作。结合Mockito等工具,还可以模拟外部依赖,使测试更加隔离和可靠。 综上所述,"springmybatis"项目展示了如何在...

    spring boot-mybatis demo

    它集成了大量常用的第三方库配置,如数据源、JPA、事务管理、邮件服务等,使得开发者能够快速地创建一个独立的、生产级别的基于 Spring 的应用程序。 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程...

    Spring+MyBatis多数据源配置实现

    本文将详细介绍如何在Spring中配置并实现多数据源,以及如何与MyBatis框架整合。 首先,我们需要理解什么是多数据源。在单数据源中,应用通常只有一个数据库连接。而在多数据源环境中,一个应用可以同时连接并操作...

    spring-mybatis-spring-2.1.0.zip

    通过MyBatis-Spring,我们可以将MyBatis的Mapper配置为Spring的Bean,从而利用Spring的依赖注入特性,使数据库操作更加简洁和可测试。 在"spring-mybatis-spring-2.1.0.zip"这个资源包中,包含了Spring与MyBatis...

    mybatis+springboot框架整合

    而SpringBoot是Spring框架的扩展,旨在简化Spring应用的初始搭建以及开发过程,通过自动配置和起步依赖,使得创建独立的、生产级别的基于Spring的应用变得极其简单。 整合MyBatis和SpringBoot,我们需要做以下步骤...

    Spring-SpringMVC-Mybatis整合

    2. **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),配置Bean定义,包括Spring MVC的DispatcherServlet配置、视图解析器、数据源、事务管理器等。同时,配置Spring的AOP以实现事务控制。 3. ...

    ssm(Spring+SpringMVC+MyBatis)整合框架

    4. **配置MyBatis**:编写MyBatis的全局配置文件`mybatis-config.xml`,设置数据源、事务管理器等,同时为每个Mapper接口创建对应的XML映射文件。 5. **编写业务代码**:实现Service层接口,处理业务逻辑;编写...

Global site tag (gtag.js) - Google Analytics