Spring编程式定义事务DefaultTransactionDefinition的问题
     @Autowired
    private DataSourceTransactionManager transactionManager;
    @Override
    public void test() {
        DefaultTransactionDefinition def=new DefaultTransactionDefinition();
        TransactionStatus transactionStatus = transactionManager.getTransaction(def);
        for(int i=1030;i<1036;i++){
            System.out.println(lowPriceGroupDao.test1(i));//更新一个值
            transactionManager.commit(transactionStatus);
        }
    }

对于一个事务来说只能调用一次commit,但是为什么第二次还可以commit成功???我是说第二次虽然报错但是还可以修改成功
org.springframework.transaction.IllegalTransactionStateException:
Transaction is already completed - do not call commit or rollback more than once per transaction

1个回答

spring 编程式事务

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring - 事务之编程式
1、编程式和声明式事务的区别 Spring提供了对编程式事务和声明式事务的支持,编程式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作与事务规则进行解耦。  简单地说,编程式事务侵入到了业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。 2、如何实现编程式事务? Sprin...
Spring编程式事务
Spring编程式事务: spring 的 org.springframework.transaction.support.TransactionTemplate可以实现编程式事务: TransactionTemplate transactionTemplate = new TransactionTemplate(); transactionTemplate.execute(new Tran
spring编程式事务
事务是spring框架中一个核心的模块,事务的ACID特性想必对于学习java的同学来说都不陌生,对于spring,实现事务的底层原理其实很简单,就是通过AOP代理进行实现,而实现spring的AOP更底层的,就是使用反射机制完成的; 举例来说,当你的方法上标注了@Service之后,spring怎么知道你这个类会被纳入到整个bean的容器中进行管理呢?如果在这个类下面的某个方法上面加了@Tran...
Spring 编程式事务
  1.首先在applicationContext.xml 配置文件里注入 transactionManager 的bean。 &amp;lt;bean id=&quot;transactionManager&quot; class=&quot;org.springframework.jdbc.datasource.DataSourceTransactionManager&quot; p:dataSource-ref=&quot;data...
spring 编程式事务 (spring事务一)
配置文件 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www
spring 编程式事务配置
1、事务切面: package com.hibernate.util; import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionS...
spring编程式事务实现
演示了spring编程式事务的实现,通过TransactionTemplate模板进行事务控制
【spring】事务管理之编程式事务
【spring】事务管理之编程式事务
Spring事务:编程式事务管理
一、背景        在上一篇Spring事务:事务属性和API简介中,初步地介绍了关于Spring事务的一些属性和主要的API,这一篇主要论述的是Spring事务中的编程史事务管理。   二、编程式事务管理 1、Spring的编程式事务管理概述        在Spring出现以前,编程式事务管理对基于POJO的应用来说是唯一选择。之前学习过Hibernate,这里面的事务管理是...
Spring编程式事务的使用
引入事务管理器 @Autowired TransactionTemplate transactionTemplate; @Autowired PlatformTransactionManager transactionManager; 使用方式1 //开启事务保存数据 boolean result = transactionTemplate.execute(new Transac...
Spring 编程式事务 声明式事务
编程式事务通用类: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Component; imp...
Spring事务实现之编程式事务
编程式事务(TranscationTemplate)废话不多说,直接看配置文件。<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns
事务模板接入(spring的编程式事务)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 事务模板接入这里接入的
Spring 事务系列 - 编程式事务
Spring 事务管理
spring事务二编程式事务
二、编程式事务xml的配置 基于 TransactionTemplate 的编程式事务管理 现在就可以在Spring管理的Bean中注入并使用: [java] view plain copy @ContextConfiguration(locations = {"classpat
Spring编程式事务遇到的问题
1、项目结构rn[img=https://img-bbs.csdn.net/upload/201411/10/1415589112_306371.png][/img]rn2、关于spring容器用到的配置文件内容如下rnrnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn classpath:hibernate.cfg.xmlrn rn rn rn rn rn rn rn rn rn rn rnrn3、测试代码的核心部分如下rnApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");rn NewsDao nd = (NewsDao)ctx.getBean("newsDao");rn News n = new News();rn n.setId(UUID.randomUUID().toString());rn n.setTitle("ok43");rn n.setContent("今天很和平");rn nd.create(n);rn News n2 = new News();rn n2.setId(UUID.randomUUID().toString());rn //n2.setTitle("");rn n2.setContent("今天很和平");rn nd.create(n2);rn4、控制台输出结果为:rnCaused by: java.sql.BatchUpdateException: Column 'title' cannot be nullrn at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)rn at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)rn at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)rn at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)rn ... 18 morernCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'title' cannot be nullrn5、我的问题:rn 按理说因为增加了Spring事务特性,两条插入的代码也处在同一个事务当中;第二条发生了异常应该一起回滚才对,不应该插入一条数据?各位大侠,请赐教。
spring、编程式事务、参数 问题?
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); rntransactionTemplate.execute(new TransactionCallbackWithoutResult() rn public void doInTransactionWithoutResult(TransactionStatus status) rn JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); rn jdbcTemplate.update("INSERT INTO USER VALUES('Spring008', 'caterpillar', 'M', 29)"); rn jdbcTemplate.update("INSERT INTO USER VALUES('Spring009', 'momor', 'F', 26)"); rn jdbcTemplate.update("INSERT INTO USER VALUES('Spring010, 'beckyday', 'F', 35)"); rn rn );rnrn这个是spring编程式事务管理,大家可以到里面的sql语句变量都是写死了!如果要从外部传参数并执行SQL语句,怎么做呢?参数改怎么传呢?还是有别的方法解决呢?
Spring 声明式事务和Spring 编程式事务
Spring 声明式事务和Spring 编程式事务
Spring+hibernate 编程式事务问题
各位大侠:rn 首先我先申明一下,在我系统里最小的改动是加一个spring的编程事务管理,但是碰到问题,代码如下:rnrn PlatformTransactionManager tm=(PlatformTransactionManager) ServiceUtil.getBean("transactionManager");rn DefaultTransactionDefinition def = new DefaultTransactionDefinition();rn PlatformTransactionManager status = tm.getTransaction(def);rn SessionFactory sessionFactory=(SessionFactory) ServiceUtil.getBean("sessionFactory"); rn Session session = sessionFactory.openSession();rn ....rn session.save(obj);rn tm.commit(status);rnrnrn applicationContext.xml配置如下:rn rn rn rn rn rn classpath:hib.cfg.xml rn rn rn rn rn rn rn rn rn rnrn 最终事务没有成功提交,请高手指点。
采用编程式事务
采用编程式事务 1、getCurrentSession()与openSession()的区别? * 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession() 创建的session则不会 * 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSess...
编程式事务
XML配置<!--事务管理器--> <bean id="springTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
springboot的编程式事务
本人在springboot项目开发中,涉及到调用第三方接口,请求第三方接口成功但返回相关交易失败的话,需要删除插入表的某条数据,或更新别表中的表状态同时记录日志等,将第三方请求的实际完成情况返回给前端,使用@Transactional注解不能满足我的需求,在某博客(忘记了)看到了该编程式事务,用起来还不错。代码如下:import org.springframework.transaction.Pl...
【Spring学习35】Spring事务(5):编程式事务
Spring提供了对编程式事务和声明式事务的支持,编程式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作与事务规则进行解耦。简单地说,编程式事务侵入到了业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。 Spring提供两种方式的编程式事务管理,分别是:使用TransactionTe
编程式事务和声明式事务
    spring提供了两种方式来为我们的逻辑层加上事务,一种是编程式事务,另一种是声明式事务。   编程式事务指的是在代码里面显式的开启事务,并关闭事务。这种做法控制粒度更细,但是对代码的侵入性更大。    声明式事务是通过注解或者xml的形式,通过aop的方式,为我们的逻辑层加上事务。    在我们的逻辑层,可能会存在多个配有事务的service之间相互调用,这个就是事务的嵌套。spring...
spring学习笔记(十五)-编程式事务例子
NULL 博文链接:https://vzhchv0010.iteye.com/blog/356137
Spring开发过程中的声明式事务和编程式事务
什么是声明式事务?什么是编程式事务?   声明式事务:即咱们在类上或者是方法上加上的@Transactional注解,建立在AOP之上的;其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明...
Spring事务处理-编程式事务和声明式事务
Spring框架提供编程式事务处理和声明式事务处理。 编程式事务处理就是指在业务代码中利用Spring框架提供的一些类进行事务处理。 声明式事务处理就是指在xml配置文件或注解的方式声明对某个类方法进行事务处理。 通过以上的描述可以大概知道编程式事务处理是以侵入的方式完成,代码的耦合度高一些。而声明式事务处理耦合度低,或者说基本没有耦合。 编程式事务管理是基于Spring框架底层的 API来完成的...
Spring框架事务管理之四:Spring编程式事务
虽然Spring框架推荐使用声明式事务管理,但是我们也要了解一下Spring的编程式事务。Spring编程式事务仅适用于操作简单的事务,有两种编程实现的方式:直接使用org.springframework.transaction.PlatformTransactionManager接口的某个实现类类似于直接使用JTA的事务API使用org.springframework.transaction.s...
Spring事务管理-编程式事务、声明式事务
事务管理是应用系统中必不可少的一部分,它保证了用户的每一次操作都是可靠的,即便是出现了异常情况,也不至于破坏后台数据的完整性。   Spring提供了丰富的事务管理功能,Spring的事务管理分为编程式事务管理和声明式事务管理两种方式。编程式事务管理指通过编码的方式实现事务管理,声明式事务基于AOP,将业务逻辑与事务处理解耦。声明式事务对代码侵入较少,在实际使用中使用比较广泛。一、包依赖;二、编程式事务;三、声明式
spring事务管理(声明式事务和编程式事务)
spring的事务管理分为:声明式事务和编程式事务 spring对事务管理通常分为三部分:DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 1.spring数据源配置 * 方式1:直接在spring的配置文件(applicationContext.xml)中配置数据源
spring事务系列(1)--编程式事务管理
对于事务的测试,先大家一个转账的环境 创建数据表account  创建数据表account CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `money` double DEFAULT NULL, PRIMARY KEY (`id`)
spring事务----编程式与声明式
编程式事务需要在代码中加入处理事务的逻辑,可能需要在代码中显示调用beginTransaction(),commit(),rollback()等事务管理相关的方法,如在执行a方法时候需要事务处理,那么就要在a方法开始时候开启事务结束关闭事务 编程式事务部分重要代码: //通过DefaultTransactionDefinition对象来持有事务处理属性   final DefaultTran
Spring编程式事务与声明式事务源码分析
  最近在工作中用到了spring的事务管理功能,到项目代码中一看,有声明式的,有编程式的,比较混淆,所以对spring的事务管理做了一个简单的分析,主要回答自己一下几个问题:      1.     声明式事务怎么处理事务?      2.     编程式事务怎么处理事务?      3.     他们之间有什么关系?      4.     spring事务管理和传播特性怎么联系起...
spring编程式事务与声明式事务详解
spring编程式事务与声明式事务详解,超详细!
spring学习之八--Hibernate编程式事务
NULL 博文链接:https://whp0731.iteye.com/blog/357291
Spring的编程式事务与声明式事务区别
编程式事务需要你在代码中直接加入处理事务的逻辑,可能需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法,如在执行a方法时候需要事务处理,你需要在a方法开始时候开启事务,处理完后。在方法结束时候,关闭事务.声明式的事务的做法是在a方法外围添加注解或者直接在配置文件中定义,a方法需要事务处理,在spring中会通过配置文件在a方法前后拦...
spring中JDBC编程式事务
from:  http://blog.csdn.net/yeson6/article/details/4954589   在spring采用纯JDBC进行数据库操作: applicationContext.xml   &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;   &amp;lt;beans    xmlns=&quot;http://www.s...
spring事务管理(编程式)
1、关键抽象类: [code=&quot;java&quot;] package org.springframework.transaction; public interface PlatformTransactionManager { TransactionStatus getTransaction(TransactionDefinition definition) throws Transactio...
Spring编程式事务管理
两种Spring事务管理方式:编程式、声明式。 Spring提供了两种声明式事务管理,分别是AOP切面和注解@Transactional Spring提供两种方式的编程式事务管理,分别是:使用TransactionTemplate和直接使用PlatformTransactionManager。 两者不同点 1、声明式事务最大的优点就是不需通过编程的方式而进行管理事务,这样就不需要在业务逻辑代码...
spring编程式事物
spring配置文件: [code=&quot;xml&quot;] ...
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview