标签:scom 级别 共享 操作 nasa actions 注释 总结 设置
事务是正确执行一系列的操作(或动作),使得数据库从一种状态转换成另一种状态,且保证操作全部成功,或者全部失败。
事务必须服从 ISO/IEC 所指定的 ACID 原则。
ACID原则的具体内涵如下:
原子性(Atomicity):
即不可分割性,事务要么全部被执行,要么就全部不被执行。
一致性(Consistency):
事务的执行使得数据库从一种正确状态转换成另一种正确状态。
隔离性(Isolation):
在事务正确提交之前,它可能的结果不应显示给任何其他事务。
持久性(Durability):
事务正确提交后,其结果将永久保存在数据库中。
程序操作数据库的需要。以 Java 编写的程序或系统,实现 ACID 的操作。
总结:Java 事务机制和原理就是操作确保数据库操作的 ACID 特性。
本事务管理器是通过调用 java.sql.Connection
来管理事务。
本管理器将事务管理的职责委托给 ogr.hibernate.Transaction
对象来管理事务,而后者是从 Hibernate Session
中获取到的。
通过一个 JPA 实体管理工厂(javax.persisitence.EntityManagerFactory 接口的任意实现)将与由工厂所产生的 JPA EntityManager合作来构建事务。
本管理器将事务管理的责任委托给 javax.transaction.UserTransactin
和 javax.transaction.TranasactionManager
对象进行事务管理。
public interface TransactionDefinition {
// 返回事务的传播行为
int getPropagationBehavior();
// 返回事务的隔离级别,事务管理器根据它来控制
// 另一个事务可以看到本事务内的哪些数据
int getIsolationLevel();
// 返回事务必须在多少秒内完成
int getTimeout();
// 事务是否只读,事务管理器能够根据这个
// 对值进行优化,确保事务是只读的
boolean isReadOnly();
}
当事务方法发被另一个事务方法调用时,必须指定事务应该如何传播。
Spring 的 7 种传播行为:
隔离级别定义了一个事务可能受其他并发事务影响的程度。
隔离级别分为:
利用数据库事务的“只读”属性,进行特定优化处理。
事务的是否“只读” 属性,不同的数据库厂商支持不同
通常而言:只读属性的应用要参考厂商的具体支持说明,比如:
Oracle 的 "redaOnly" 不起作用,不影响其增删改查;
Mysql 的 "readOnly" 为 true, 只能查,增删改则出异常。
事务超时就是事务的一个定时器,在特定时间内事务如果没有执行完毕,那么就会自动回滚,而不是一直等待其结束。
为了使应用程序很好地运行,事务不能运行太长的时间。因为事务可能涉及对后端数据库的锁定,所以长时间的事务会不必要的占用数据库资源。
默认情况下,事务只有遇到运行期异常时才会回滚,而在遇到检查型异常时不会回滚。
// Spring 事务状态接口
// 通过调用 PlatformTraansactionManager的getTransactin()
// 获取事务状态实例
public interface TransactionStatus {
boolean isNewTransaction(); // 是否是新的事务
boolean hasSavepoint(); // 是否有恢复点
void setRollbackOnly(); // 设置为只回滚
boolean isRollbackOnly(); // 是否为只回滚
boolean isCompleted; // 是否已完成
}
此为 Spring 官方团队推荐的编程式事务管理方式;
主要工具为 JdbcTemplate 类。
类似应用 JTA UserTransaction API 方式,但异常处理更简洁;
辅助类为:TransactionDefinition
和 TransactionStatus
。
步骤:
步骤:
需要有效的数据源,具体数据源根据实际情况创建。
创建编程事务管理对象
业务逻辑处理:基于 JDBCTemplate 完成业务处理
5种类型:
独立代理;共享代理;拦截器;tx 拦截器;全注释
编程式事务侵入到了业务代码里面,但提供了更加详细的事务管理;
而声明式事务由于基于 AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。
PlatfromTractionManager
实现类;JtaTransactionManager
。标签:scom 级别 共享 操作 nasa actions 注释 总结 设置
原文地址:https://www.cnblogs.com/weixuqin/p/11073527.html