用python写一个简单的网站,html个人网页代码,网站构建的开发费用,安徽网页设计Spring事务管理详解_基本原理_事务管理方式 1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持#xff0c;使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交#xff0c;那在没有Spring帮我们管理事务之前#xff0c;我们要怎么做。 C… Spring事务管理详解_基本原理_事务管理方式 1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交那在没有Spring帮我们管理事务之前我们要怎么做。 Connection conn DriverManager.getConnection();
try { conn.setAutoCommit(false); //将自动提交设置为false 执行CRUD操作 conn.commit(); //当两个操作成功后手动提交
} catch (Exception e) { conn.rollback(); //一旦其中一个操作出错都将回滚所有操作都不成功e.printStackTrace();
} finally {conn.colse();
} 事务是一系列的动作一旦其中有一个动作出现错误必须全部回滚系统将事务中对数据库的所有已完成的操作全部撤消滚回到事务开始的状态避免出现由于数据不一致而导致的接下来一系列的错误。事务的出现是为了确保数据的完整性和一致性在目前企业级应用开发中事务管理是必不可少的。 2. 常见spring事务面试题 2.1 什么是事务 单个逻辑单元执行一系列的事要么全成功要么全不执行。 spring事务的本质就是对数据库事务的支持没有数据库的事务支持spring是无法完成事务的。 对于纯jdbc操作数据库使用事务如下Connecton con DriverManager.getConnection();con.setAutoCommit(false);//执行crud 操作con.commint();//提交事务或者回滚事务 con.rollback(); 2.2 spring的核心。 1、spring的核心就是ioc控制反转跟aop面向切面编程。 2、ioc控制反转控制强调对象是由容器控制的控制了对外部资源的获取。反转以前都是我们自己创建对象依赖对象反转就是由容器帮我们创建并 注入依赖对象。 3、aop面向切面编程aop将封装的对象切开找出对多个对象产生公共影响的部分将其封装成一个可复用的模块这个模块成为切点切点把不属于业务层却被业务层共同调用的部分进行提取然后封装。 3. spring事务管理方式 spring支持编程式事务管理和声明式事务管理两种方式。 3.1 编程式事务管理了解 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理spring推荐使用TransactionTemplate。 3.2 声明式事务管理重点 声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截然后在目标方法开始之前创建或者加入一个事务在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务这样就不需要在业务逻辑代码中掺杂事务管理的代码只需在配置文件中做相关的事务规则声明(或通过基于Transactional注解的方式)便可以将事务规则应用到业务逻辑中。 3.3 事务管理小结 显然声明式事务管理要优于编程式事务管理这正是spring倡导的非侵入式的开发方式。声明式事务管理使业务代码不受污染一个普通的POJO对象只要加上注解就可以获得完全的事务支持。和编程式事务相比声明式事务唯一不足地方是后者的最细粒度只能作用到方法级别无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求也存在很多变通的方法比如可以将需要进行事务管理的代码块独立为方法等等。 4. 总结 通过这篇文章你要get到的知识点是“事务的基本概念”、以及spring事务管理的两种方式。 “事务的基本概念”通常是初级工程师面试的一个热点。 而spring事务管理的两种方式你要明确在实际开发中用到的只是声明式事务管理比如Transactional注解 而声明式事务注解又有两种常用的配置方式所以如果你只知道Transactional注解是不行的 下一篇文章将告诉你如何在xml中配置以致在开发中能够使用该注解。 声明式事务管理两种常用的方式(基于tx和aop名字空间的xml配置 Transactional注解) 本文地址http://www.cnblogs.com/niceyoo/articles/8729525.html posted 2018-04-07 00:12 niceyoo 阅读(...) 评论(...) 编辑 收藏