Spring 理解 事务管理

简介: Spring 理解 事务管理

首先要理解什么是事务(transaction) :

事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

所谓的事物管理也就是

#当执行这个操作时:**重点内容**
public void create(String name, Integer age, Integer marks, Integer year){
        TransactionDefinition def = new DefaultTransactionDefinition();
        TransactionStatus status = transactionManager.getTransaction(def);**#根据指定的传播行为,该方法返回当前活动事务或创建一个新的事务。**
        try {
            String SQL1 = "insert into Student (name, age) values (?, ?)";
            jdbcTemplateObject.update( SQL1, name, age);
            // Get the latest student id to be used in Marks table
            String SQL2 = "select max(id) from Student";
            int sid = jdbcTemplateObject.queryForObject(SQL2, Integer.class);
            String SQL3 = "insert into Marks(sid, marks, year) " +
                    "values (?, ?, ?)";
            jdbcTemplateObject.update( SQL3, sid, marks, year);
            System.out.println("Created Name = " + name + ", Age = " + age);
            transactionManager.commit(status);**#该方法提交给定的事务和关于它的状态。**
       } catch (DataAccessException e) {
            System.out.println("Error in creating record, rolling back");
            transactionManager.rollback(status);#如果出现异常该方法执行一个给定事务的回滚。从而达到保持数据一致性的效果,以避免**从一个帐号扣款并使另一个帐号增款**这一事务中出现一方(扣款方)出错而另一方没有赠款的情况下扣款方已被扣款
            throw e;
        }
        return;
    }

AIEarth是一个由众多领域内专家博主共同打造的学术平台,旨在建设一个拥抱智慧未来的学术殿堂!【平台地址:https://devpress.csdn.net/aiearth】 很高兴认识你!加入我们共同进步!

目录
相关文章
|
1月前
|
Java 数据库 Spring
【spring(四)】Spring事务管理和@Transactional注解
【spring(四)】Spring事务管理和@Transactional注解
|
7月前
|
Java 数据库连接 数据库
Spring Boot 中的事务管理
Spring Boot 中的事务管理
|
2月前
|
XML Java 数据库连接
无痛事务管理:Spring中的@Transactional和相关注解完全解析
无痛事务管理:Spring中的@Transactional和相关注解完全解析
179 0
|
7月前
|
Java 数据库连接 API
Spring Boot 中的事务管理
Spring Boot 中的事务管理
|
3月前
|
Java 数据库连接 数据库
事务管理解析:掌握Spring事务的必备技能!
事务管理解析:掌握Spring事务的必备技能!
|
3月前
|
XML Java 数据库
Spring 事务管理 @Transactional
Spring 事务管理 @Transactional
32 0
|
3月前
|
Java 数据库 Spring
Spring之事务管理
Spring之事务管理
|
4月前
|
Java 数据库连接 数据库
Spring Boot的事务管理实战(附源码 超详细)
Spring Boot的事务管理实战(附源码 超详细)
116 0
|
4月前
|
安全 Java 数据库连接
Spring框架:IoC容器、AOP、事务管理等知识讲解梳理
Spring框架:IoC容器、AOP、事务管理等知识讲解梳理
56 1
|
5月前
|
XML Java 数据库
Spring框架中如何处理事务管理
Spring框架中如何处理事务管理
105 0