1. 概念
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。
2. 特性
并非任意的对数据库的操作序列都是数据库事务。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
- 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
- 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
- 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
- 持久性(Durability):一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。
3. 使用
- 使用1
import org.springframework.transaction.support.TransactionTemplate;
// 执行数据库操作
@Autowired
private TransactionTemplate transactionTemplate;
public<T> T methodName(T parameter1, T parameter2, ...) {
Object result = (Object)transactionTemplate.execute(status->
try{
...
// 执行回滚
if (不满足事务要求)
status.setRollbackOnly();
...
} catch (Exception e) {
e.printStackTrace();
status.setRollbackOnly();
});
}
- 使用2
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.transaction.support.TransactionCallback;
// 执行数据库操作
@Autowired
private TransactionTemplate transactionTemplate;
public<T> T methodName(T parameter1, T parameter2, ...) {
boolean result = transactionTemplate.execute(new TransactionCallback<Boolean>() {
@Oveeride
public Boolean doInTransaction(TransactionStatus status) {
try {
...
// 执行回滚
if (不满足事务要求)
status.setRollbackOnly();
...
} catch (Exception e) {
e.printStackTrace();
status.setRollbackOnly();
}
}
});
}
4. 参考文献
- hollischuang.com/archives/898
网友评论