mybatis+spring注解式事务的问题 1C

如何来判断事务对数据库执行无影响(就是更新或者删除时没有到达目的)时,进行提示和事务回滚?各位大神请发表意见。。。

6个回答

可以在同一个事务执行多条更新语句,在多条更新语句中间插入一条异常语句(可以自己抛出throw new RuntimeExcetpion(),或者执行除零操作),然后看数据库有没有更新。
比如:
update student1 set...
update student2 set...
update student3 set...
int a = 9 / 0;
update student4 set...

不是由异常才回滚么 catch 里面 捕捉啊

qq_20507067
曾鉏清小哥哥 我用的是注解式事务,那也需要判断对数据影响的行数把?
2 年多之前 回复

默认情况下,数据库处于自动提交模式。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果
执行失败则隐式的回滚事务。

可以在java中使用查询数据库搜索这条数据对比是否存在。就知道有没有执行了

  • 注解事务默认情况是是碰到RuntimeException就会回滚,如果没打到目的,你抛个运行时异常就可以了
qq_20507067
曾鉏清小哥哥 那也需要判断对数据影响的行数把?
2 年多之前 回复

默认情况下,数据库处于自动提交模式。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果
执行失败则隐式的回滚事务。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring注解式事务
spring注解的方式开启事务。开启事务,事务挂起,等等。
Spring注解式事务解析
Spring注解式事务解析 首先往Spring容器新增一个Advisor,BeanFactoryTransactionAttributeSourceAdvisor,它包含了TransactionInterceptor通知和TransactionAttributeSourcePointcut切点。TransactionAttributeSourcePointcut切点实际匹配使用了Annotation
关于spring的注解式声明事务的问题
今天在写一个测试注解式事务的程序,不知道我的action一配置注解@Transactional,程序就运行不正常,请求各位帮忙看看是什么问题,部分代码如下:rnrn1.接口:rnpackage com.test.service;rnpublic interface CifService rn rn public void save();rnrnrn2.接口实现:rnrn[color=red]//@Transactional(就是这个地方,我打开注释后就出错了,我想在save方法中使用事务)[/color]rnpublic class CifServiceImpl implements CifService rn [color=red]……(省略无关代码) [/color] @Overridern public void save() rn jdbcTemplate.update("update cif set introduction='11111' where cifname='test'"); rn// jdbcTemplate.update("update cif set introduction='2222' where cifname='aaaa");rnrn rnrnrn3.JUnit测试类rnrnpublic class TestCifService rn private static CifServiceImpl cifServiceImpl;rnrn @BeforeClassrn public static void setUpBeforeClass() throws Exception rn rn tryrn ApplicationContext ctx = new ClassPathXmlApplicationContext("config/spring_config.xml");rn cifServiceImpl = (CifServiceImpl) ctx.getBean("cifServiceImpl");rn catch(RuntimeException e)rn e.printStackTrace();rn rn rn rn @Test public void save()rn cifServiceImpl.save();rn rnrnrnrn4.spring配置文件:rn rn rn rnrn5.出错信息:rnjava.lang.ClassCastException: $Proxy10 cannot be cast to com.test.service.impl.CifServiceImplrnrn各位帮忙看一下,谢谢!rnrn
Spring注解式声明事务相关问题
以下整理自己在使用Spring(3.1.1)注解式声明事务遇到的相关问题。 1、[b]方法的访问权限只有在public时,@Transactional才会生效。[/b] [quote] 摘自[url]http://docs.spring.io/spring/docs/3.2.12.RELEASE/spring-framework-reference/htmlsingle/[/url] ...
spring 注解事务的问题
这是配置文件:rnrnrn rn rn rn rn rn rnrn部分java 代码:rnrn@Transactional(readOnly = false, propagation = Propagation.REQUIRED , rollbackFor = CPlatformServiceException.class )rn public int modShopRemoteUpgrade(long id, String versionId, String updateTime, String updateContent,String softWarePath) rn rn rn [color=#0000FF]rnint affCnt = shopRemoteUpgradeDao.updateRemoteUpgrade( id, versionId, updateTime, updateContent,softWarePath);rn[/color] rn [color=#FF0000]rn TShgjVersion version=new TShgjVersion();rn shopRemoteUpgradeDao.insertRemoteUpgrade(version);rnrn [/color] rnreturn affCnt;rnrn rn蓝色部分可以修改数据rn红色部分我故意让其报错 ,而且抛出CPlatformServiceException.class异常rnrn我此时把注解部分的 rollbackFor = CPlatformServiceException.class 给去掉rn我的目的就是不让程序回滚,rn此时操作程序,按理说,rn蓝色部分的数据应该会被修改的。但是,我经过测试发现,蓝色部分的数据还是没有改过来,这应该不符合我的要求的,请求帮助。
spring+Mybatis注解式事务
1.上一章,我们谈到了spring+mybatis声明式事务管理,我们在文章末尾提到,在实际项目中,用得更多的是注解式事务管理,这一章将学习一下注解式事务管理的有关知识.注解式事务管理只需要在上一节的小实例上更改两个文件就好: (1)更改spring配置文件applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?>...
Spring 注解式注入和事务方式
  公司的Spring统一用注解。 其声明为:   <!-- 使用annotation 自动注册bean --> <context:component-scan base-package="com.woyo.travel"> </context:component-scan> <context:annotation-config /&...
注解式事务配置
一、配置文件 在service工程中创建applicationContext-tx.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...
注解式事务解决方案
一、添加事务配置文件:applicationContext-tx.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
mybatis 集成spring 动态数据源,注解式切换
mybatis 集成spring 动态数据源
mybatis 注解式开发
   MyBatis的注解,主要是用于替换映射文件。映射文件中无非存放在增删改查的sql映射标签。所以,MyBatis注解,就是要替换映射文件中的SQL标签。 MyBatis官方文档中指出,若要真正想发挥MyBatis功能,还是要用映射文件。所以官方并不建议使用MyBatis注解式开发。      MyBatis的注解主要是在接口方法的的上面的  注意的是注解括号后面不需要打分号。 接口...
MyBatis学习笔记之注解式
1. 了解什么是MyBatis:   用百度的话来说,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映...
MyBatis注解式开发
MyBatis MyBatis学习记录 基于注解的开发比xml较方便 包扫描器 mapper接口扫描 //springboot启动类中添加 @SpringBootApplication //引入spring配置文件 @ImportResource(locations = "classpath:spring-dao.xml") //controller service扫描 @ComponentS...
MyBatis 注解式开发
MyBatis的注解,主要是用于替换映射文件。映射文件中无非存放在增删改查的sql映射标签。所以,MyBatis注解,就是要替换映射文件中的SQL标签。 MyBatis官方文档中指出,若要真正想发挥MyBatis功能,还是要用映射文件。所以官方并不建议使用MyBatis注解式开发。 注解后没有分号 注解首字母大写,因为注解与类、接口是同一级别的。一个注解,后台对应着一个@interf
C# 事务
事务
spring mybatis 事务注解不生效 求解
rn执行方法出现异常后没有回滚数据 新手求解rn[code=html] rn rn rn rn [/code]rnrnrn[code=html]rn rnrn rn rn rn rn [/code]rnrn[code=java]rn@Service("reserveService")rn@Transactionalrnpublic class ReserveServiceImpl implements ReserveServiceI rnrnpublic void ConfirmReserve(String reserveId,String quoteId)rn //根据预约号查询报价信息rn ReservePriceQuery rpq = new ReservePriceQuery();rn rpq.createCriteria().andReserveidEqualTo(reserveId);rn List reservePrices = reservePriceDao.selectByExample(rpq);rn //根据报价主键修改各个报价状态rn for (ReservePrice thisReservePrice : reservePrices) rn String rid = thisReservePrice.getRid();rn if(rid.equals(quoteId))rn ReservePrice reservePrice = new ReservePrice();rn reservePrice.setRid(quoteId);rn reservePrice.setCheckprice(1);rn reservePriceDao.updateByPrimaryKeySelective(reservePrice);rn break;rn rn rn //修改预约状态rn Reserve reserve = new Reserve();rn //异常发生rn int a =4/0;rn reserve.setRid(reserveId);rn reserve.setReservestatus(Interface.RTN_RESERVE_STATUS_COMFRIMED);rn reserveDao.updateByPrimaryKeySelective(reserve);rn rn rnrnrn[/code]rn
spring boot:配置mybatis以及注解事务
笔记 配置mybatis: 添加mybatis-spring-boot-starter以及mysql-connector-java依赖: mysql mysql-connector-java runtime org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.1 新建en
Spring和Mybatis整合---注解实现AOP事务
XML配置如下: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="ht
Spring 4 + Mybatis 3 注解事务
Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上写的不清楚,要不版本都很旧了,所以就是不回滚,Spring 的配置太灵活了,在加上新手,根本就不可能明白Spring的原理,所以在网上找配置基本没有一个可以用的。 说一下环境 Intellij Idea 15 + Maven + Spring 4.25 + Mybatis 3使用注解的方式,进行的事务回滚,欢迎测试。
注解式事务和配置式事务同时存在,注解式事务不生效
注解式事务和配置式事务同时存在,注解式事务不生效
spring开启注解事务问题
我是用的spring最新版本4.3.0rnrn开启注解事务的时候, 这么配置报Attribute transaction-manager is not allowed here这样的错rnrn如下图:rnrn[img=https://img-bbs.csdn.net/upload/201606/29/1467172675_852656.png][/img]rnrn有人知道是什么原因吗!
关于spring注解事务问题
[code=Java]rnrn@Transactional(propagation = Propagation.NOT_SUPPORTED)rnclass PassengerDAOImplrnrn rn //情况1,数据会提交rn //@Transactional(propagation = Propagation.NOT_SUPPORTED)rn passengerDAO.addPassenger(passenger);rn //@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.SERIALIZABLE)rn passengerDAO.queryPassengerByCondition(passenger);rn rn //情况2,数据不会提交,数据库也没有数据为什么查询返回结果是1.rn //@Transactional(propagation = Propagation.NOT_SUPPORTED)rn passengerDAO.addPassenger(passenger);rn //@Transactional(propagation = Propagation.NOT_SUPPORTED,isolation = Isolation.SERIALIZABLE)rn passengerDAO.queryPassengerByCondition(passenger);rnrnrnrn俩个独立的方法,add和query只是事务配置不同,为什么查询方法的事务配置会影响数据会不会入库?rnrnrn[/code]
Spring 注解式依赖注入
创建一个Spring项目 Spring项目快速创建查看此链接:https://blog.csdn.net/Kedongyu_/article/details/81392992 查看context.xml是否开启扫描 在context.xml文件添加下列代码,启用注解式依赖注入。 &amp;lt;context:component-scan base-package=&quot;com.diko.first...
Spring 注解式定时任务
  一、引入jar包    二、spring配置文件中配置 (applicationContext.xml)   1)      xmlns和 xsi:schemaLocation配置         xmlns:task=&quot;http://www.springframework.org/schema/task&quot;         xsi:schemaLocation=&quot;http://ww...
spring 注解式
给初学的springmvc注解式用得高手不用看@Controller@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)
spring 注解式事务管理
上一节我们讲了用spring aop管理事务,这一届我们来讲使用直接来管理事务 定义数据源 <bean id=“datasource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property
spring结合spring mvc下用注解式事务不生效
      项目开发过程中遇到spring注解事务不生效的情况,项目使用的是spring mvc、spring、mybatis 。bean都是用spring的注解管理的,事务也是用的注解式。经过几番折腾发现问题,特此记录解决方法如下:         一、在applicationContext.xml文件中扫描bean时排除Controller。   &amp;lt;context:compo...
mybatis(三) 注解式开发 以及 mybatis与spring集成
mybatis与spring的整合过程:         1、导入spring、mybatis的pom依赖         2、spring-mybatis.xml               2.1   开启注解式开发               2 .2 数据库信息文件的注册               2.3 数据库连接池C3P0的配置               2.4  sqlsessi...
spring 注解事务 (spring事务二)
xml配置 &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:context=&quot;http://www.springframework.org/schema/context&quot; xmlns:tx=&quot;http://www.
spring3 注解式事务不起作用
用spring3+hibernate配置注解式事务,测试的时候抛出异常总是不回滚。rn[size=medium][color=red]spring主配置文件hibernate.xml[/color][/size]rnrnrn rn rn rn rn rn rn rn rn rnrn rn rn rnrn rnrnrn rnrnrnrnrn rnrnrn rnrnrn rnrn rnrnrn rnrnrn rnrn rnrn rn rn rn rn classpath*:/com/qymgr/entity/hbm/*.hbm.xmlrn rn rn rn rn hibernate.dialect=org.hibernate.dialect.Oracle10gDialectrn hibernate.show_sql=truern hibernate.format_sql=truern hibernate.query.substitutions=true 1, false 0rn hibernate.jdbc.batch_size=20rn hibernate.c3p0.max_statements=0rn rn rn rn rnrn rn rn rnrn rn rn rn rn rn rn rn rnrn[size=medium][color=red]测试的DemoDao接口:DemoDao.java[/color][/size]rnpackage com.qymgr.sysmgr.dao;rnrnimport java.util.List;rnrnimport com.qymgr.entity.Demo;rnrnpublic interface DemoDaorn List findAll();rn void save(Demo demo);rnrn[size=medium][color=red]测试的实现类:DemoDaoImpl.java[/color][/size]rnpackage com.qymgr.sysmgr.dao.impl;rnrnimport java.util.List;rnrnimport javax.annotation.Resource;rnrnimport org.springframework.orm.hibernate3.HibernateTemplate;rnimport org.springframework.orm.hibernate3.support.HibernateDaoSupport;rnimport org.springframework.stereotype.Repository;rnimport org.springframework.transaction.annotation.Transactional;rnrnimport com.qymgr.entity.Demo;rnimport com.qymgr.sysmgr.dao.DemoDao;rn@Repositoryrn@Transactionalrnpublic class DemoDaoImpl extends HibernateDaoSupport implements DemoDaorn// @Resource HibernateTemplate hibernateTemplate;rn public List findAll()rn return getHibernateTemplate().find("from Demo");rn rn @Transactionalrn public void save(Demo demo)rn getHibernateTemplate().save(demo);rn throw new RuntimeException();rn rnrn抛出异常了,但是每回数据都成功插入了数据库,求大神指点
springboot注解式事务详解
事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理,例子: @Service @Transactional public class LogServiceImpl implements LogService { } 当标于方法上时, 标示该方法都进行事物处理,例子: /** * 删除用户 * @return ...
spring注解事务
第一步:引入命名空间 ,在spring的配置文件中修改, [code=&quot;java&quot;] [/code] 第二步:在spring的配置文件中修改,将所有具有@Transactional 注解的bean自动配置为声明式事务支持 [code=&quot;java&quot;] [/code] 第三步: 在接口或类的声明处 ,写一个@Transact...
Spring注解事务的学习
1.@Override@Override是伪代码,表示重写,当然不可以也可以,不过写上有如下好处: 1、可以当注释用,方便阅读; 2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
Spring注解事务失效
最近搭建公司的项目的环境,发现注解事务失效,纠结了半天,找到了结果记录一下。 注解事务发现springmvc.xml 和spring.xml 重复扫描导致的      这个是springmvc.xml  扫描的时候排除service注解的bean     这个是spring.xml 扫描的时候排除controller注解的bean  
Spring MVC 事务注解
在controller或service层增加 @Transactional 一般加以下参数:  @Transactional(value=&quot;oracletransactionManager&quot;,propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
手写spring事务注解
微信公众号:用心程序员 介绍 手写spring事务注解,意思是自定义**@ExtTransactional注解,实现类似spring自带注解@Transactional**一样的功能 一、Java自定义注解 注解是Jdk1.5新增新技术。很多框架为了简化代码,都会提供一些注解。注解可以理解为插件,是代码级别的插件,不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。 ###Java提供了三...
spring事务和myBatis事务的设置
spring事务和myBatis事务的设置
Spring事务注解实现
AOP底层实现原理 动态代理 ( 什么是动态代理 1.代理对象,不需要实现接口 2.代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象(需要我们指定创建代理对象/目标对象实现的接口的类型) 3.动态代理也叫做:JDK代理,接口代理 )   AOP编程应用场景 日志记录,性能统计,安全控制,事务处理,异常处理   事务注解实现代码 pom.xml &amp;lt;...
spring 注解 事务
第一步:引入命名空间 ,在spring的配置文件中修改, beans根元素里多了三行,如下 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframew
Spring注解事务不起作用
Spring中注解配置如下:rn[code=html]rnrn rnrn 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 rnrn rn rn rn rn rn rnrn[/code]rnEntityrn[code=java]rn@Entityrn@Table(name = "FHMS_FUNCTIONS")rn@GenericGenerator(name = "id", strategy = "increment")rnpublic class Function rn @Idrn @Column(name = "func_id")rn @GeneratedValue(generator = "id", strategy = GenerationType.AUTO)rn private int id;rn /**rnrn[/code]rnrnspring的filter:rn[code=html]rn rn rn springrn org.springframework.orm.hibernate4.support.OpenSessionInViewFilterrn rn rn springrn /*rn rnrn[/code]rn后台的日志只输出一句rnHibernate: select max(func_id) from FHMS_FUNCTIONSrn
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件