spring 管理 jdbc 事务
- @Transactional 业务实现类 类名上方--这个类中的方法,执行操作前会打开事务。
默认:RuntimeException 自动回滚, 可以try catch 的异常,不会滚
方法名上方 就可以指定RuntimeException uncheck例外也不会滚 参数是noRollbackFor=RuntimeException.class
同理也可以让让 Exception check例外强制回滚 参数是 rollbackFor=Exception.class
有一些方法不需要事务控制 如 query方法,可以在方法的注解里指定参数propagation=NOT_SUPPORTED,不参与事务
一般 save update 默认都是REQUIRED 即如果已经存在事务环境则加入到事务当中,如果不存在事务环境,则新开启一个事务。
@Transactional
public class PersonServiceImpl{
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource){
this.jdbcTemplate=new JdbcTemplate(dataSource);
}
@Transactional(noRollbackFor=RuntimeException.class)
public void delete(){
jdbcTemplate.delete(1);
}
}
hibernate 中的getCurrentSession()得到的是受spring 容易管理的session,受spring事务管理。
而openSession()不受spring业务bean的事务管理
关于什么时候回滚,什么时候不会滚在spring中的设置:http://blog.csdn.net/qiutian1990/article/details/7940032
http://peng-hao1988.iteye.com/blog/1424214
spring 管理 jdbc 事务的更多相关文章
- 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别
1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...
- spring管理的事务
之前对spring的事务传播机制没有概念,花点时间去看了事务的源码,以及这些事务传播机制使用的文档,在此做一下简单的笔记 正文 下面说提到的共享事务的意思就是几个service共用同一个事务,如传播机 ...
- 使用Spring管理数据库事务
在整个JavaWeb项目开发中,事务是用来开发可靠性网络应用程序的最关键部分.当应用程序与后端资源进行交互时,就会用到事务,这里的后端资源包括数据库.MQ.ERP等.而数据库事务是最常见的类型,而我们 ...
- Spring管理Hibernate事务
在没有加入Spring来管理Hibernate事务之前,Hibernate对事务的管理的顺序是: 开始事务 提交事务 关闭事务 这样做的原因是Hibernate对事务默认是手动提交,如果不想手动提交, ...
- 【Spring】JDBC事务管理XML配置
将spring事务管理与spirng-mybatis分离开了: <?xml version="1.0" encoding="UTF-8"?> < ...
- Spring管理 hibernate 事务配置的五种方式
Spring配置文件中关于事务配置总是由三个组成部分,DataSource.TransactionManager和代理机制这三部分,无论是那种配置方法,一般变化的只是代理机制这块! 首先我创建了两个类 ...
- Spring 开发第一步(四)Spring与JDBC事务
Spring使用各种不同的TransactionManager来管理各种不同数据源事务底层(比如jdbc数据源.hibernate数据源.JPA数据源等等).在此基础上使用各种对应的Template来 ...
- Spring学习8-Spring事务管理(编程式事务管理)
一.Spring事务的相关知识 1.事务是指一系列独立的操作,但在概念上具有原子性. 比如转账:A账号-100, B账号+100,完成.这两个操作独立是没问题的. 但在逻辑上,要么全部完成,要么一 ...
- mybatis源码分析(8)-----事务(mybatis管理、spring管理)
写在前面 接口:MyBatis的事务Transaction的接口有一下实现类 JdbcTransaction 由jdbc管理的事务(即利用Connection对象完成对事务的提交(commit()). ...
随机推荐
- iOS-Block的多种使用
一.图 二.代码 1.viewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewControll ...
- Python内置模块(2)
这一部分主要介绍sys.os.hashlib和re模块.其中的re模块介绍得非常详细,是本部分的重点! 均为python3.5.1环境. 一.sys模块 sys模块涉及的主要是与python解释器相关 ...
- Tools Function
public static void TraceLog(string message, string logFileName) { string tmppath = AppDomain.Current ...
- P6 EPPM 安装与配置指南 16 R1 2016.4
关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...
- iOS开发系列通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- asp.net 网页抓取内容
网页抓取代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; // using ...
- 【Bootstrap基础学习】01 Bootstrap的CSS
Bootstrap 使用了一些 HTML5 元素和 CSS 属性,所以需要使用 HTML5 文档类型. <!DOCTYPE html> <html lang="zh-CN& ...
- socket调用流程的函数及数据结构
如有错误,欢迎指正. 如果需要,可以提供visio原文件. 参考: 1. <追踪Linux TCPIP代码运行--基于2.6内核> 2. Linux Kernel 2.6.26
- [moka同学笔记]Yii2.0 dropDownList的使用(二)
方法一: <?php $psObjs = Poststatus::find()->all(); $allStatus = ArrayHelper::map($psObjs,'id','na ...
- OpenGL 圆角矩形
本来打算用四个圆角GL_TRIANGLE_FANS+两个矩形来填充, 后来经无情公子的提醒, 突然发现:"尼玛就是一压扁了的圆啊!" 于是全部用GL_TRIANGLE_FANS, ...