数据库事务
1、什么是事务 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 简单理解,事务就是对数据库一连串的操作,更新、保存和删除,对数据产生变化的操作。 2、为什么需要事务 事务的作用是保证数据准确性和一致性的一种机制。假如没有事务,那我们提交数据不会保存,有异常的时候数据不会回滚。 比如说往银行账户存钱,余额没有添加,去ATM取钱,ATM出故障没吐钱,余额变少了。 3、怎么做 在JAVA开发中通常借助Spring管理事务,大致的原理就是通过AOP在方法前后添加开始事务,提交或回滚的操作。 Spring事务管理分为声明式和编程式两种。 (1)声明式一般是写在配置文件的,它的好处是配置简便,模糊匹配对应的服务方法。 也可以通过注解的方式来开始事务,不过它也是属于声明式。 (2) 编程式 看这个名字大致可以猜出是在我们业务嵌入事务管理代码,好处是事务控制粒度更加细化,缺点是对代码有侵入性。 使用@Transactional来声明事务 当@Transactional作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该注解来覆盖类级别的定义。 @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected