-
转账案例环境准备-项目配置查看全部
-
转账案例环境准备--创建数据表account查看全部
-
转账案例测试类查看全部
-
转账业务层实现类查看全部
-
业务层注入dao查看全部
-
转账dao层实现类查看全部
-
dao的实现类中注入jdbc dataSource查看全部
-
spring事务管理 1.编程式的事务管理 2.使用xml配置声明式事务查看全部
-
TransactionStatus接口用来记录事务的状态 该接口定义了一组方法,用来获取或判断事务的相应状态信息. 平台事务管理器(PlatformTransactionManager)会根据TransactionDefinition中定义的事务信息(包括隔离级别、传播行为、超时,只读)来进行事务的管理,在管理的过程中事务可能产生了保存点或事务是新的事务等情况,那么这些信息都会记录在TransactionStatus的对象中. TransactionStatus记录事务的状态信息(刷新、是否有保存点、是否完成、是否是一个新事务、是否只回滚、设置只回滚)查看全部
-
事务的传播行为:主要是解决业务层方法之间的相互调用的问题 事务的传播行为有七种,又分为三类: 第一类共同点:如果 A 方法中有事务,则调用 B 方法时就用该事务,即:A和B方法在同一个事务中。 PROPAGATION_REQUIRED:如果 A 方法中没有事务,则调用 B 方法时就创建一个新的事务,即:A和B方法在同一个事务中。 PROPAGATION_SUPPORTS:如果 A 方法中没有事务,则调用 B 方法时就不使用该事务。 PROPAGATION_MANDATORY:如果 A 方法中没有事务,则调用 B 方法时就抛出异常。 第二类共同点:A方法和B方法没有在同一个事务里面。 PROPAGATION_REQUIRES_NEW:如果 A 方法中有事务,则挂起并新建一个事务给 B 方法。 PROPAGATION_NOT_SUPPORTED:如果 A 方法中有事务,则挂起。 PROPAGATION_NEVER:如果 A 方法中有事务,则报异常。 第三类:如果 A 方法有的事务执行完,设置一个保存点,如果 B 方法中事务执行失败,可以滚回保存点或初始状态。 PROPAGATION_NESTED :如果当前事务存在,则嵌套事务执行 @重点的三种:PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_NESTED。查看全部
-
事务的传播行为:解决业务层方法之间的相互调用问题查看全部
-
事务隔离级别(4种)说明示意 DEFAULT|使用后端数据库默认的隔离级别(Spring中的选择项) READ_UNCOMMITED|允许你读取还未提交的但是改变了的数据。可能导致脏读,幻读,不可重复读 READ_COMMITED|允许在并发事务已经提交后读取。可防止脏读,但是幻读,不可重复读仍可发生 REPEATABLE_READ|对于相同的字段的多次读取是一致的,除非数据被事务本身改变。可防止脏读,不可重复读,但幻读仍可能发生。 SERIALIZABLE|完全服从ACID的隔离级别,确保不会发生脏,幻,不可重复读。这在所有的隔离级别中是最慢的,它是典型的通过完全锁定在事务中涉及的数据表来完成的 oracle默认的隔离级别read_committed mysql默认的隔离级别repeatable_read查看全部
-
事务不考虑隔离性,引发的安全问题 幻读,或者说虚读查看全部
-
事务不考虑隔离性,引发的安全问题 不可重复读-读取到了已经提交的数据查看全部
-
事务不考虑隔离性,引发的安全问题 脏读-读取到了未提交的数据查看全部
举报
0/150
提交
取消