数据库事务的ACID特性:
2,面试常考的ACID属性:
① 原子性:事务是应用中不可再分的最小逻辑执行单位体,要么都执行,要么都不执行。
② 一致性:事务结束后,数据库内的数据是合法正确的;(数据不被破坏)【‘数据守恒’】
③ 隔离性:并发执行的事务之间彼此相互独立、互相不干扰
④ 持久性:事务提交后,数据是永久性的、不可回滚。
3,处理事务操作的模板:
1):在一组逻辑操作之前:设置事务为手动提交(即取消自动提交) Connection对象.setAutoCommit(false);
2): 进行一组逻辑操作之后:进行事务的提交:connecton对象.commit();
3): 若该过程遇到了异常,则回滚:connection对象.rollback();
注意:
1,在jdbc事务中是默认提交的,在执行DML或DDL操作时就已经提交事务了。
2,对于CRUD操作,只有DML操作才需要事务,查询不需要事务。
3,细节:以后但凡发现自己设计到事务的代码测试通过了,但是数据库表中的数据不被。--》事务没有提交
4,Mysql中,InnoDB支持外键,支持事务;MyISAM不支持外键,不支持事务。