博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring事务管理
阅读量:6586 次
发布时间:2019-06-24

本文共 1426 字,大约阅读时间需要 4 分钟。

Spring事务管理

1.事务的基本概念:

运行期例外unchecked事务回滚 throw new RunTimeException()

 

check例外 事务不回滚  Exception

 

 

改变事务行为:

加上以上注释Checked例外,也会事务回滚

 

加上以上注释unChecked例外,不会进行事务回滚

 

事务的传播行为:

不打开事务:

 

默认事务传播行为

 

 

 

 

 

 

外部事务回滚,则全部回滚;内部事务回滚,不影响外部的事务

 (spring内部完成)

Readonly 只读属性设置,不能更新,提高效率

timeout事务的超时时间,默认30秒

isolation事务隔离级别(由数据库提供,不由spring提供)

sqlServer默认: sqlServer2000(read commited), sqlServer2005(2种: read commited,repeatable Read)

mysql默认:

 

隔离级别越高,并发影响性能越大(从上到下,1,2,3,4)

 

 

可重复读,mysql采用的是快照技术(镜像)

 

2.采用基于xml方式配置事务

 

 

切入点  事务通知

Aop技术拦截一些类及其中的方法

第一个*:返回值的类型表示任意

..表示:包含子包

第二个*:包含所有的类

第三个*:包含所有的方法

(..):方法里面的参数可有可无,及任意类型

 

事务管理器

 

 

3.注解方式配置事务,更加灵活

  1.  <tx:annotation-driven transaction-manager="transactionManager/>  
  2.     <!--这句话的作用是注册事务注解处理器 --> 

 

  1.     <bean id="transactionManager"  
  2.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager ">  
  3.         <property name="dataSource">  
  4.             <ref bean="basicDataSource/>  
  5.         </property>  
  6.     </bean> 

 

  1.     <bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource">  
  2.         <property name="url"  
  3.             value="jdbc:mysql://127.0.0.1:3306/mytestdb?characterEncoding=utf8" />  
  4.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  5.         <property name="username" value="root" />  
  6.         <property name="password" value="123456" />  
  7.         <property name="maxActive" value="100" />  
  8.         <property name="maxIdle" value="30" />  
  9.         <property name="maxWait" value="1000" /> 
  10.         <property name="validationQuery" value="select 1" />  
  11.     </bean> 

 

转载于:https://www.cnblogs.com/xxj-bigshow/p/7772114.html

你可能感兴趣的文章
函数const
查看>>
关于“Return empty arrays or collections, not nulls”的思考
查看>>
CodeForces-1167E-Range Deleting
查看>>
兼容多个版本程序集的web.config配置
查看>>
java finally块执行时机分析
查看>>
day6 字符串
查看>>
JMeter5.0 边界提取器使用
查看>>
Windows Azure 上的 Symfony,适用于 PHP 开发者的强大组合
查看>>
堆和栈的区别 (转贴)
查看>>
通过包名获取该包下的所有类
查看>>
【JavaScript学习笔记】画图
查看>>
反向代理与直接访问Ping性能分析
查看>>
Linux写时拷贝技术(copy-on-write)
查看>>
opencv视频读取问题
查看>>
java Iterator Fail-fast机制
查看>>
Java堆外内存之五:堆外内存管理类ByteBuffer
查看>>
HTML5 input placeholder 颜色修改
查看>>
TJ/T808 终端通讯协议设计与实现(码农本色)
查看>>
分布式搜索引擎Elasticsearch的查询与过滤
查看>>
SolidEdge 工程图中如何给零件添加纹理或贴图
查看>>