在项目中有很多地方会使用到独立事务,下面以获取主键为例
(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;
}
相关推荐
Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...
在Spring与MyBatis的整合部分,书籍可能会介绍Spring的DataSourceTransactionManager和MyBatis的SqlSessionFactory配置,以及如何通过MyBatis-Spring库无缝集成这两者。此外,还会涉及Spring的声明式数据访问对象...
- 易于测试:Spring的DI使得单元测试变得简单,MyBatis的SQL独立性有利于数据库相关的测试。 - 灵活性:MyBatis允许直接编写SQL,能够充分利用数据库特性,避免ORM的性能损失。 - 事务管理:Spring提供的事务管理...
3. **事务配置示例说明** - **context命名空间**:使用`<context:component-scan>`标签来指定组件扫描的包路径,而`<context:property-placeholder>`用来加载配置文件。 - **DataSource配置**:为每个数据源定义了...
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
2. **配置整合**:在Spring的配置文件中,需要添加MyBatis和SpringMVC的配置,包括数据源、SqlSessionFactory、MapperScannerConfigurer(扫描Mapper接口)、DispatcherServlet配置等。 3. **MyBatis-Spring桥接**:...
MyBatis与Spring的集成非常紧密,可以通过Spring的事务管理器进行事务控制,并且可以方便地实现DAO层的注入。 **Struts框架** Struts是基于MVC(Model-View-Controller)设计模式的Web应用框架。它负责处理HTTP请求...
在IT行业中,SpringMVC、Spring和MyBatis是三个非常重要的Java开发框架,它们各自在Web应用的各个层面上发挥着关键作用。本项目是一个整合了这三个框架的基于Annotation和Maven的项目,旨在提供一种高效、灵活的开发...
通过这个非Spring环境下的MyBatis基础项目,你可以了解到MyBatis如何独立工作,理解其核心机制,为后续整合Spring或其他框架打下坚实的基础。在实践中不断摸索和优化,将使你更加熟练地运用MyBatis解决实际问题。
- **mybatis-config.xml**:配置 MyBatis 的全局配置文件,包括数据源、事务管理器等。 - **pom.xml**:添加 MyBatis 相关依赖。 - **Mapper 接口与 XML 映射文件**:定义数据库操作的接口,每个方法对应一个 SQL...
Spring与Mybatis的整合可以让我们方便地进行数据库操作,并通过Spring的事务管理确保数据一致性。 Spring MVC是Spring框架的一部分,用于构建Web应用程序。它处理HTTP请求,将请求映射到控制器,然后通过模型和视图...
SSM(Spring、SpringMVC和MyBatis)是一个经典的Java Web开发框架组合,用于构建高效、灵活且可维护的企业级应用。这个框架整合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming...
Spring MVC、Spring 和 MyBatis 是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring MVC 处理Web层的请求与响应,Spring 提供依赖注入和事务管理等核心功能,而MyBatis则专注于数据库操作。...
在"springmybatis"项目中,Junit被用来对业务逻辑进行单元测试,确保每个独立的组件都按照预期工作。结合Mockito等工具,还可以模拟外部依赖,使测试更加隔离和可靠。 综上所述,"springmybatis"项目展示了如何在...
它集成了大量常用的第三方库配置,如数据源、JPA、事务管理、邮件服务等,使得开发者能够快速地创建一个独立的、生产级别的基于 Spring 的应用程序。 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程...
本文将详细介绍如何在Spring中配置并实现多数据源,以及如何与MyBatis框架整合。 首先,我们需要理解什么是多数据源。在单数据源中,应用通常只有一个数据库连接。而在多数据源环境中,一个应用可以同时连接并操作...
通过MyBatis-Spring,我们可以将MyBatis的Mapper配置为Spring的Bean,从而利用Spring的依赖注入特性,使数据库操作更加简洁和可测试。 在"spring-mybatis-spring-2.1.0.zip"这个资源包中,包含了Spring与MyBatis...
而SpringBoot是Spring框架的扩展,旨在简化Spring应用的初始搭建以及开发过程,通过自动配置和起步依赖,使得创建独立的、生产级别的基于Spring的应用变得极其简单。 整合MyBatis和SpringBoot,我们需要做以下步骤...
2. **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),配置Bean定义,包括Spring MVC的DispatcherServlet配置、视图解析器、数据源、事务管理器等。同时,配置Spring的AOP以实现事务控制。 3. ...
4. **配置MyBatis**:编写MyBatis的全局配置文件`mybatis-config.xml`,设置数据源、事务管理器等,同时为每个Mapper接口创建对应的XML映射文件。 5. **编写业务代码**:实现Service层接口,处理业务逻辑;编写...