spring实现jdbctemplate添加事务支持示例

代码如下:

public interface JdbcTemplate extends JdbcOperations {
public abstract void beginTranstaion();

public abstract void commit();

public abstract void rollback();
}

代码如下:

public class JdbcTemplateImpl extends org.springframework.jdbc.core.JdbcTemplate implements JdbcTemplate {

private PlatformTransactionManager platformTransactionManager;
 private DefaultTransactionDefinition transactionDefinition;
 private ThreadLocal<TransactionStatus> transcationStatus = new ThreadLocal<TransactionStatus>();

public void beginTranstaion() {
  TransactionStatus tmp = platformTransactionManager.getTransaction(transactionDefinition);
  transcationStatus.set(tmp);
 }

public void commit() {
  TransactionStatus tmp = transcationStatus.get();
  if (tmp == null) {
   throw new RMSRuntimeException("no transcation");
  }
  platformTransactionManager.commit(tmp);
  transcationStatus.remove();
 }

public void rollback() {
  TransactionStatus tmp = transcationStatus.get();
  if (tmp == null) {
   throw new RMSRuntimeException("no transcation");
  }
  platformTransactionManager.rollback(tmp);
  transcationStatus.remove();

}

@Override
 public void afterPropertiesSet() {
  super.afterPropertiesSet();
  transactionDefinition = new DefaultTransactionDefinition();
  transactionDefinition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
  transactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
  platformTransactionManager = new DataSourceTransactionManager(getDataSource());

}

public PlatformTransactionManager getPlatformTransactionManager() {
  return platformTransactionManager;
 }

public DefaultTransactionDefinition getTransactionDefinition() {
  return transactionDefinition;
 }

public ThreadLocal<TransactionStatus> getTranscationStatus() {
  return transcationStatus;
 }

}

(0)

相关推荐

  • 在Java的Spring框架的程序中使用JDBC API操作数据库

    同时与数据库使用普通的旧JDBC的工作,它变得繁琐写不必要的代码来处理异常,打开和关闭数据库连接等,但Spring的JDBC框架需要的所有低层次细节从打开连接,准备和执行SQL语句,过程异常,处理事务,最后关闭连接. 所以,你所要做的只是定义连接参数,并指定要执行的SQL语句,并做必要的工作,在每次迭代时从数据库中获取数据. Spring JDBC提供了一些方法和相应不同的类与数据库进行交互.我要采取经典和最流行的做法,利用JdbcTemplateclass框架.这是管理的所有数据库的通信和异常

  • SpringMVC处理Form表单实例

    Spring MVC 表单处理例子下面的例子说明了如何编写一个简单的基于 web 的应用程序,它利用了使用 Spring 的 Web MVC 框架的 HTML 表单. 一 测试项目搭建 (1)新建Java Web项目,并引入几个SpringMVC项目所需要的jar包,项目结构和所需要的jar包如下: ①web.xml: <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3

  • jquery.form.js框架实现文件上传功能案例解析(springmvc)

    上一篇 Bootstrap自定义文件上传下载样式(http://www.jb51.net/article/85156.htm)已经有一段时间了,一直在考虑怎么样给大家提交一篇完美的逻辑处理功能.现在我结合自己的实际工作给大家分享一下. 使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jquery的ajax方法与jquery.form.js中的ajaxSu

  • springMVC结合AjaxForm上传文件

    最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用. 准备工作: 下载jquery-form.js 相关jar: commons-fileupload-1.1.1.jar commons-io-1.3.2.jar 在spring-servlet.xml进行multipartResolver配置: <bean id="multipartResolver" class="org.springf

  • spring对JDBC和orm的支持实例详解

    简介 Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术,如JDBC,Hibernate或者JDO等.它不仅可以让你方便地在这些持久化技术间切换, 而且让你在编码的时候不用考虑处理各种技术中特定的异常. 一致的异常层次 Spring提供了一种方便的方法,把特定于某种技术的异常,如SQLException, 转化为自己的异常,这种异常属于以 DataAccessException 为根的异常层次.这些异常封装了原始异常对象,这样就不会有丢失任何错误信息的

  • spring的jdbctemplate的crud的基类dao

    复制代码 代码如下: import java.util.List; /*** * 基本接口 *  * @author xyq * @param <T> *  */public interface BaseDaoInf<T> { /***  * 查询接口  *   * @return  */ public List<T> find(String sql, Object[] parameters, Class<T> cl); /***  *  添加,更新,删除接

  • 使用jQuery.form.js/springmvc框架实现文件上传功能

    使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jquery的ajax方法与jquery.form.js中的ajaxSubmit方法的参数,具体细节将在下一篇博客中分享. 重点: html表格三要素: action="fileUpload/fileUpload" method="post" enctype="mul

  • spring实现jdbctemplate添加事务支持示例

    复制代码 代码如下: public interface JdbcTemplate extends JdbcOperations {public abstract void beginTranstaion(); public abstract void commit(); public abstract void rollback();} 复制代码 代码如下: public class JdbcTemplateImpl extends org.springframework.jdbc.core.J

  • Spring学习JdbcTemplate数据库事务参数

    目录 Spring JdbcTemplate数据库事务参数 一.propagation 1. REQUIRED 2. REQUIRES_NEW 3. SUPPORTS 4. NOT_SUPPORTED 5. MANDATORY 6. NEVER 7. NESTED 二.ioslation 三.timeout 四.readOnly 五.rollbackFor 六.noRollbackFor Spring JdbcTemplate数据库事务参数 @Transactional() 注解里有不少参数,其

  • spring学习JdbcTemplate数据库事务管理

    目录 spring JdbcTemplate数据库事务管理 一.spring 中的事务管理 二.spring 事务管理 API 三.使用事务管理 1. 配置文件 2. 类上添加事务注解 spring JdbcTemplate数据库事务管理 现在有个账户表,里面存着用户金额. 如果要真正地做好转账的操作,就要用到事务,否则当出现异常后会出现数据不一致等问题. try { // 第一步 开启事务 // 第二步 进行业务操作 // 第三步 没有发生异常,提交事务 } catch(){ // 第四步 发

  • Spring框架JdbcTemplate数据库事务管理完全注解方式

    目录 Spring JdbcTemplate事务注解 配置类方式配置 完全注解方式 一.创建配置类 二.测试注解方式的事务管理 Spring JdbcTemplate事务注解 配置类方式配置 在之前的操作中,相关的配置还是写在了 xml 配置文件中.现在,使用配置类的方式进行配置. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework

  • Spring 中jdbcTemplate 实现执行多条sql语句示例

    说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行: 很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里减去订单所需的钱数,即需要更新银行账户的表,同时需要更新淘宝订单的表将订单状态改为"已付款",这就需要先后执行多个sql(仅仅用于表达执行多的SQL的举例说明,具体淘宝如何实现并不是很清楚~~~~~); 但如果这中间出现电脑断网断电等问题,仅将我们银行账户的钱扣掉了,订单状态并没有改,那我

  • Spring中事务用法示例及实现原理详解

    前言 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现. 关于事务,简单来说,就是为了保证数据完整性而存在的一种工具,其主要有四大特性:原子性,一致性,隔离性和持久性.对于Spring事务,其最终还是在数据库层面实现的,而Spring只是以一种比较优雅的方式对其进行封装支持.本文首先会通过一个简单的示例来讲解Spring事务是如何使用的,然后会讲解Spring是如何解析xml中的标签,并对事

  • spring中的注解事务演示和添加步骤详情

    目录 添加注解效果事务演示 基于注解的事务添加步骤 添加不回滚属性设置 @Transactional注解参数详解 添加注解效果事务演示 注解我们经常会用到,或者在jdk源码中也会看到,例如: @Deprecated以及我们在spring或者springboot中经常用到@Controller.@Service.@Repository.@Entity等注解. 基于注解的事务添加步骤 1)在applicationContext_service.xml文件中添加事务管理器 <bean id="t

  • Spring Boot 集成 Kafkad的实现示例

    Spring Boot 作为主流微服务框架,拥有成熟的社区生态.市场应用广泛,为了方便大家,整理了一个基于spring boot的常用中间件快速集成入门系列手册,涉及RPC.缓存.消息队列.分库分表.注册中心.分布式配置等常用开源组件,大概有几十篇文章,陆续会开放出来,感兴趣同学请提前关注&收藏 消息通信有两种基本模型,即发布-订阅(Pub-Sub)模型和点对点(Point to Point)模型,发布-订阅支持生产者消费者之间的一对多关系,而点对点模型中有且仅有一个消费者. 前言 Kafka是

  • Spring框架 注解配置事务控制的流程

    目录 基于注解的事务控制 1.配置事务管理器 2.在业务层使用@Transactional 注解 3.开启 spring 对注解事务的支持 4.注解扫描器 Spring 注解事务实现机制 1.事务的实现机制 2.注解方式的事务使用注意事项 写在前面:虽然使用注解方式配置事务控制很简单,用起来也很爽,但是在每个方法前都加上@xxx形式的注解,显然并不美观,也不利于代码的规范与维护,所以XML的配置方式是才是重点. 基于注解的事务控制 基于注解配置事务控制,相较XML配置来说更加简单,但仍需要XML

  • 超细致讲解Spring框架 JdbcTemplate的使用

    目录 JdbcTemplate基本使用 1-JdbcTemplate基本使用-概述(了解) 2-JdbcTemplate基本使用-开发步骤(理解) 3-JdbcTemplate基本使用-快速入门代码实现(应用) 4-JdbcTemplate基本使用-spring产生模板对象分析(理解) 5-JdbcTemplate基本使用-spring产生模板对象代码实现(应用) 6-JdbcTemplate基本使用-spring产生模板对象代码实现 7-JdbcTemplate基本使用-常用操作-更新操作(应

随机推荐