- 浏览: 938416 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
/*
* spring默认情况下会对unchecked会进行事务回滚
* 对checked默认不会进行事务回滚就是在外部需要用try{}catch(..){..}进行捕获滴
*
* */
//以下表示不使用默认事务这里对Exception类型异常也进行事务回滚
//@Transactional(rollbackFor=Exception.class)
//当然也可以把unchecked异常注释成需要不回滚异常
@Transactional(noRollbackFor=RuntimeException.class)
public void add(int id,String name)throws Exception
{
template.update("insert into studentinfo(number,name)values(?,?)",new Object[]{id,name});
//test ->template.update("insert into studentinfos(number,name)values(?,?)",new Object[]{id,name});
//这是unchecked异常默认情况下 spring会自动进行回滚
//throw new RuntimeException("运行时异常");
//这是checked异常 默认情况下spring不会进行事务回滚
throw new Exception("checed异常");
}
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=false,timeout=20,isolation=Isolation.READ_UNCOMMITTED)
readOnly=false:表示这个事务为只读事务不可以写(可以提高性能)
timeout=20:事务超时默认30秒
isolation=Isolation.READ_UNCOMMITTED):事务隔离级别见下..
//表示不支持事务
@Transactional(propagation=Propagation.NOT_SUPPORTED)
public List<Person> getObjects()
{
List<Person> list=template.query("select * from studentinfo", new myRowMapper());
return list;
}
其中:propagation=Propagation.参数如下:
REQUIRED:业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。
NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为它开启事务。如果方法在一个事务中被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行。
REQUIRESNEW:属性表明不管是否存在事务,业务方法总会为自己发起一个新的事务。如果方法已经运行在一个事务中,则原有事务会被挂起,新的事务会被创建,直到方法执行结束,新事务才算结束,原先的事务才会恢复执行。
MANDATORY:该属性指定业务方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果业务方法在没有事务的环境下调用,容器就会抛出例外。
SUPPORTS:这一事务属性表明,如果业务方法在某个事务范围内被调用,则方法成为该事务的一部分。如果业务方法在事务范围外被调用,则方法在没有事务的环境下执行。
Never:指定业务方法绝对不能在事务范围内执行。如果业务方法在某个事务中执行,容器会抛出例外,只有业务方法没有关联到任何事务,才能正常执行。
NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED属性执行.它使用了一个单独的事务, 这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事务造成影响。它只对DataSourceTransactionManager事务管理器起效
* spring默认情况下会对unchecked会进行事务回滚
* 对checked默认不会进行事务回滚就是在外部需要用try{}catch(..){..}进行捕获滴
*
* */
//以下表示不使用默认事务这里对Exception类型异常也进行事务回滚
//@Transactional(rollbackFor=Exception.class)
//当然也可以把unchecked异常注释成需要不回滚异常
@Transactional(noRollbackFor=RuntimeException.class)
public void add(int id,String name)throws Exception
{
template.update("insert into studentinfo(number,name)values(?,?)",new Object[]{id,name});
//test ->template.update("insert into studentinfos(number,name)values(?,?)",new Object[]{id,name});
//这是unchecked异常默认情况下 spring会自动进行回滚
//throw new RuntimeException("运行时异常");
//这是checked异常 默认情况下spring不会进行事务回滚
throw new Exception("checed异常");
}
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=false,timeout=20,isolation=Isolation.READ_UNCOMMITTED)
readOnly=false:表示这个事务为只读事务不可以写(可以提高性能)
timeout=20:事务超时默认30秒
isolation=Isolation.READ_UNCOMMITTED):事务隔离级别见下..
//表示不支持事务
@Transactional(propagation=Propagation.NOT_SUPPORTED)
public List<Person> getObjects()
{
List<Person> list=template.query("select * from studentinfo", new myRowMapper());
return list;
}
其中:propagation=Propagation.参数如下:
REQUIRED:业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。
NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为它开启事务。如果方法在一个事务中被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行。
REQUIRESNEW:属性表明不管是否存在事务,业务方法总会为自己发起一个新的事务。如果方法已经运行在一个事务中,则原有事务会被挂起,新的事务会被创建,直到方法执行结束,新事务才算结束,原先的事务才会恢复执行。
MANDATORY:该属性指定业务方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果业务方法在没有事务的环境下调用,容器就会抛出例外。
SUPPORTS:这一事务属性表明,如果业务方法在某个事务范围内被调用,则方法成为该事务的一部分。如果业务方法在事务范围外被调用,则方法在没有事务的环境下执行。
Never:指定业务方法绝对不能在事务范围内执行。如果业务方法在某个事务中执行,容器会抛出例外,只有业务方法没有关联到任何事务,才能正常执行。
NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED属性执行.它使用了一个单独的事务, 这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事务造成影响。它只对DataSourceTransactionManager事务管理器起效
- SpringJDBC.zip (12.4 KB)
- 下载次数: 3
发表评论
-
Spring 5 中文解析之核心篇-IoC容器
2020-08-27 11:23 439关于本书 本书 本书编写主要目的在于翻 ... -
Spring Boot Profile使用
2018-06-26 19:06 603Spring Boot使用@Profile注解可以实现不同 ... -
Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
2016-06-22 09:36 703Spring事务配置的五种方式 前段时间对Sprin ... -
Spring中@Autowired注解、@Resource注解的区别
2016-06-13 22:25 775Spring不但支持自己定义的@Autowired注解, ... -
Spring实现AOP的4种方式
2016-06-13 21:41 988先了解AOP的相关术语:1.通知(Advice):通知定义了 ... -
SpringMvc HttpClient上传参数
2016-05-04 21:58 3026SpringMVC代码示例如下: @RequestM ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
Spring+JDBC组合开发及环境搭建
2012-05-11 09:11 1614知识点; 【 <1、使用Spring+JDBC集成步骤 ... -
基于基于XML配置方式声明切面
2012-05-11 09:11 1521知识点: 【 //普通的java 类 public clas ... -
基于注解方式声明切面(AOP)
2012-05-10 10:55 1670基础知识: 【 首先启动对@AspectJ注解的支持(蓝色部 ... -
使用Spring进行面向切面(AOP)编程
2012-05-10 10:55 1161基础知识: 【 要进行AOP编程,首先我们要在spring的配 ... -
AOP中的概念
2012-05-10 10:55 962基础知识 【 Aspect(切面):指横切性关注点的抽象即为切 ... -
使用CGLIB生成代理
2012-05-10 10:55 1431知识点 【 使用前提条件: 【 /* * 如果这 ... -
JDK动态代理
2012-05-10 10:55 1234知识点 【 public class JDKProxy imp ... -
通过在classpath自动扫描方式把组件纳入spring容器中管理
2012-05-09 09:39 1413知识点 : 【 前面的例子我们都是使用XML的bean定义来 ... -
依赖注入--手工装配
2012-05-09 09:39 1205知识点: 【 手工装配依赖对象,在这种方式中又有两种编程方式 ... -
集合类型的装配
2012-05-09 09:39 1097知识点: 【 第一:设置集合属性 public class ... -
bean的生命周期
2012-05-05 22:41 0bean的生命周期: 如下配置: <bean id=& ... -
bean的生命周期
2012-05-09 09:39 1106bean的生命周期: 如下配置: <bean id=& ... -
注入依赖对象
2012-05-08 12:06 999知识点: 【 基本类型 ...
相关推荐
本文将深入探讨Spring事务管理的源码,理解其背后的实现机制。 首先,Spring事务管理有两种主要模式:编程式事务管理和声明式事务管理。编程式事务管理通过调用`PlatformTransactionManager`接口提供的方法进行显式...
在实际开发中,理解这部分源码有助于我们更深入地掌握Spring事务管理的工作原理。 至于工具,开发者可以使用诸如IntelliJ IDEA这样的IDE,其中集成的调试工具可以帮助我们跟踪代码执行流程,查看事务状态的变化,...
在Spring框架中,事务管理是核心功能之一,它确保了数据操作的一致性和完整性。本教程将深入探讨如何在Spring中实现自定义事务管理器...这将加深你对Spring事务管理的理解,帮助你在实际项目中更加熟练地运用这些技术。
在本文中,我们将深入探讨Spring框架中的事务管理。Spring是一个广泛应用的Java企业级应用开发框架,它提供...如果你想要深入了解,可以参考提供的博客链接或其他相关资料,进一步学习Spring事务管理的细节和最佳实践。
在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...
了解了Spring事务的基本概念后,我们可以看到压缩包中的文件名如SpringStudy_tx3、SpringStudy_tx4等,这些很可能是按照章节进行划分的源码示例,涵盖了不同阶段的事务管理学习。通过学习这些源码,你可以更直观地...
通过这个案例,我们可以学习如何在Spring中正确地使用Nested事务,并理解其背后的原理。对于开发复杂的业务逻辑,尤其是在多层服务调用或者分布式系统中,掌握Nested事务的用法是非常重要的。这个案例提供了实际的...
在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理事务。...通过学习和实践这个示例,你将能够掌握在多层方法调用中如何优雅地管理和协调事务,提高代码的可靠性和可维护性。
你可以根据这个文件进一步了解和学习Spring事务管理的实践。 总结来说,Spring的事务管理提供了强大且灵活的工具,使得开发者能够在不关心底层实现的情况下,轻松地管理数据库事务。无论是编程式还是声明式,都能...
本主题将深入探讨“Spring事务案例分析.zip”中的关键知识点,包括Spring事务管理及其在实际项目中的应用。 首先,我们来了解什么是Spring事务管理。在分布式系统或数据库操作中,事务管理是确保数据一致性和完整性...
Spring事务详解 Spring框架的事务管理功能是Java企业级开发中的重要组成部分,它将事务管理从具体的业务逻辑和数据访问逻辑中...对于希望深入学习Spring事务管理的开发者而言,理解这些核心概念和原则是非常重要的。
Spring事务机制是Java开发中非常重要的一个概念,它在企业级应用中扮演着核心角色,确保数据的一致性和完整性。Spring提供了多种事务管理方式,包括编程式事务管理和声明式事务管理。在这篇DEMO中,我们将重点探讨...
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
本篇文章将聚焦于Spring事务处理中ThreadLocal的使用,以及如何通过源码理解和应用这个工具。 首先,了解Spring事务管理的基本概念。在多线程环境中,事务管理是至关重要的,它负责确保一组数据库操作要么全部成功...
Spring事务管理就是围绕这些特性来确保数据的一致性。 四、事务的传播行为 在Spring中,我们可以配置事务的传播行为,比如REQUIRED(默认,如果当前存在事务,则加入当前事务,否则新建一个事务)、PROPAGATION_...
总之,这个“spring简单实例 事务回滚”案例为我们提供了一个学习Spring事务管理的好起点。通过理解如何配置事务管理器,使用`@Transactional`注解,以及异常处理机制,我们可以更好地掌握Spring如何保证数据的一致...
总结来说,"Spring事务传播Demo"是一个用于学习和演示Spring事务管理和传播行为的实例,通过分析和实践这个Demo,开发者可以更好地理解和掌握Spring在处理事务时的复杂情况,提升在实际项目中的应用能力。...
Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...
通过运行这些例子,你将对Spring事务管理有更深入的理解,知道何时选择编程式还是声明式事务,以及如何有效地处理事务异常。 总之,Spring的事务管理是其强大功能的一部分,无论是编程式还是声明式,都能帮助开发者...