事务管理

2019-12-04  本文已影响0人  Fultom

事务管理

原子性:整体
一致性:完成
隔离性:并发
持久性:结果
    脏读:一个事务读到另一个事务没有提交的数据
    不可重复读:一个事务读到另一个事务已提交的数据(update)
    虚读(幻读):一个事务读到另一个事务已提交的数据(insert)
    read uncommitted:读未提交 存在三个问题
    read committed:读已提交.解决脏读,存在2个问题
    repeatable read:可重复读,解决:脏读,不可重复,存在一个问题
    serialzable:串行化,都解决,单事务

2.2 事务管理结束

2.2.1 导入 jar包

2.2.2 三个顶级接口

2.2.3 PlatformtransactionManager 事务管理器

    DataSourceTransactionManager ---jdbc 开发时事务管理器,采用JdbcTemplate
    
    HibernateTransactionManager ---hibernate开发时事务管理器,整合hibernate
//事务管理器 通过"事务详情",获取"事务状态",从而管理事务
TransactionStatus getTransaction(TransactionDefinition defintion),

//根据状态提交
void commit(TransactionStatus status)

//根据状态回归
void rollback(TransactionStatus status)

2.2.4 TransactionStatus 事务的状态

    isNewTransaction() 是否是新的事务
    hasSavepoint() 是否有保存点
    setRollbackOnly() 设置回滚
    isRollbackOnly() 是否回滚
    flush() 刷新
    isCompleted() 是否完成

2.2.5 TransactionDefinition 事务详情

getPropagationBehavior() 传播行为
getIsolationLevel() 隔离级别
getTimeout() 获取超时时间
isReadOnly() 是否只读(增删改:读写;查询:只读)
getName():String 配置事务详情名称,一般方法名称.例如:save.add * 等


传播行为:在两个业务之间如何共享事务

上一篇 下一篇

猜你喜欢

热点阅读