基于spring-jdbc的事务(Transaction)
事务是数据库中可以保证多项数据操作要么全部成功,要么全部失败的机制,以此可以保障数据安全!
基于spring-jdbc的事务处理方式就是在业务方法之前添加@Transactional
注解即可!
在spring-jdbc中,处理事务大致是:
开启事务
try {
调用带@Transactional注解的业务方法
提交:commit
} catch (RuntimeException e) {
回滚:rollback
}
所以,要实现spring-jdbc对事务的管理,不仅仅只是添加@Transactional
注解而已,还需要保证:在视为“失败”时,必须抛出RuntimeException
或其子孙类异常的对象!
另外,@Transactional
注解还可以添加在类之前,表示该类中所有的业务方法都是有事务保障的,但是并不推荐这样处理!
小结:
-
什么时候需要使用事务:当某项业务涉及2次或更多的增、删、改操作时,需要使用事务,例如:需要执行2次Update操作,或1次Insert操作加上1次Update操作等;
-
如何保证事务能正确执行:首先,每次增、删、改操作都必须获取受影响的行数,并判断行数是否是预期值,如果不是预期值,必须抛出
RuntimeException
或其子孙类异常的对象,然后,在业务方法之前添加@Transactional
注解即可。