Srping事务

1、JDBC事务提交步骤:

      connection 对象设置setAutoCommit(false),取消自动提交。。

      connection对象提交事务commit() ,提交事务。

       如果出现错误,connection对象将事务回滚,rallback(),回滚事务。


2、事务 是指一个操作的多个步骤要么完全成功,要么完全失败。

3、事务的四大特性:

      原子性:即事务是最小单位。事务的操作要么就完全都发生,要么都不发生。

      一致性:事务执行前后数据保持一致性。

      隔离性:多个用户并发访问的时候,一个用户的事务不会受到其他的用户的干扰。(通过设置数据库的隔离级别来设置)

      持久性:一个事务一旦被提交,对他的数据的修改就是永久的。

4、事务三个高级接口:PlateformTransactionManager(平台相关事务管理器接口)、TransactionDefinition(事务定义信息)、TransactionStatus(事务状态信息)

5、不考虑事务的隔离性,将会导致的状态有:

      脏读:一个事务读取了另外一个事务未提交的数据。

      不可重复读:一个事务读取另一个事务提交的数据,即一个事务先后两次读取的数据不一样。

      幻读:一个事务先后读取两次,发现数据记录的条数不一样。

6、Spring提供2种事务管理方式 :

        编程式事务管理:

            1)在Spring中配置TransactionManager事务管理器

            2)将TransactionManager注入TransactionTemplate对象中。

            3)将TransactionTemplate注入到目标程序。

              例:ClassUserService{

                           TransactionTemplatetransactionTemplate ;

                            //登录

                           publicvoid login(){

                                   transactionTemplate.execute(newTransactionCallbackWithoutResult(){

                                         ObjectdoInTransaction(TransactionStatus status){

                                                    //被事务管理的代码

                                          }

                                   })

                            }

                     }

        声明式事务管理:

               1)基于TransactionProxyFactoryBean的方式管理事务

                         application.xml中的配置:

                           <bean    配置事务管理器transactionManager>

                            <bean    配置业务层的代理transactionProxyFactoryeBean>

                                       <property  配置目标对象>

                                        <property  注入事务管理器>

                                         <property  注入事务的属性,隔离级别,传播行为等>

                                                  <prop    隔离级别>

                                          </property>

                             </bean>

               1)使用aspectJ来进行配置

                             application.xml中的配置:

                              <bean    配置事务管理器transactionManager>

                               <tx:advice   配置事务的增强>

                                  <tx:attributes     配置事务的属性,隔离级别,传播行为等>

                               </tx:advice>

                              <aop:cofig    配置切面>

                                    <aop:pointcut  配置切入点>

                                     <aop:adviser  配置切面>                  

                              </aop:config

                2)使用注解来进行配置

                            application.xml中的配置

                               <bean 配置事务管理器TransactionManager>

                               <tx:annotation-driven   启动事务的注解驱动>


     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值