网站建设完成阶段性总结报告,网站托管找,物流网站哪个好,WordPress 网站小图标1.什么是事务?
事务#xff1a;是数据库操作的最小工作单元#xff0c;是作为单个逻辑工作单元执行的一系列操作#xff1b;这些操作作为一个整体一起向系统提交#xff0c;要么都执行、要么都不执行#xff1b;事务是一组不可再分割的操作集合#xff08;工作逻辑单元…1.什么是事务?
事务是数据库操作的最小工作单元是作为单个逻辑工作单元执行的一系列操作这些操作作为一个整体一起向系统提交要么都执行、要么都不执行事务是一组不可再分割的操作集合工作逻辑单元 事务包含一个或多个业务操作这些操作要么都执行要么都不执行。事务常被用来确保数据的一致性。 2. 事务的四大特性 1 、原子性 事务是数据库的逻辑工作单位事务中包含的各操作要么都做要么都不做 2 、一致性 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时就说数据库处于一致性状态。如果数据库系统 运行中发生故障有些事务尚未完成就被迫中断这些未完成事务对数据库所做的修改有一部分已写入物理数据库这时数据库就处于一种不正确的状态或者说是 不一致的状态。 3 、隔离性 一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的并发执行的各个事务之间不能互相干扰。 4 、持续性 也称永久性指一个事务一旦提交它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。 3.事务的隔离级别是什么? 数据库事务的隔离级别有4种由低到高分别为Read Uncommited、Read Commited、Repeatable Read、Serializable。并发数据访问时可能会出现以下问题3类数据读取问题脏读、不可重复读、幻读和2类数据更新问题第1类丢失更新和第2类丢失更新。 Read Uncommited读未提交即一个事务可以读取另一个未提交事务的数据并发操作会导致脏读 Read Commited读操作即一个事务要等到另一个事务提交后才能读取数据解决脏读问题并发操作会导致不可重复读 Repeatable Read重复读即开始读取数据事务开启时不再允许修改操作解决不可重复读问题并发操作会导致幻读对应insert操作 Serializable序列化最高的事务隔离级别该级别下事务串行化顺序执行避免脏读、不可重复读与幻读但是该级别效率低下比较消耗数据库性能一般不用。
4.什么是事务的传播行为? 事务传播行为propagation behavior指的就是当一个事务方法被另一个事务方法调用时这个事务方法应该如何运行. Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性。PROPAGATION_REQUIRED如果当前没有事务就创建一个新事务如果当前存在事务就加入该事务这是最常见的选择也是Spring默认的事务传播行为。(required需要没有新建有加入) PROPAGATION_SUPPORTS支持当前事务如果当前存在事务就加入该事务如果当前不存在事务就以非事务执行。supports支持有则加入没有就不管了非事务运行 PROPAGATION_MANDATORY支持当前事务如果当前存在事务就加入该事务如果当前不存在事务就抛出异常。mandatory强制性有则加入没有异常 PROPAGATION_REQUIRES_NEW创建新事务无论当前存不存在事务都创建新事务。requires_new需要新的不管有没有直接创建新事务 PROPAGATION_NOT_SUPPORTED以非事务方式执行操作如果当前存在事务就把当前事务挂起。not supported不支持事务存在就挂起 PROPAGATION_NEVER以非事务方式执行如果当前存在事务则抛出异常。never不支持事务存在就异常 PROPAGATION_NESTED如果当前存在事务则在嵌套事务内执行。如果当前没有事务则按REQUIRED属性执行。nested存在就在嵌套的执行没有就找是否存在外面的事务有则加入没有则新建