JAVA编程的回滚机制是什么样的,最好能举个实例,有人会吗?

Python013

JAVA编程的回滚机制是什么样的,最好能举个实例,有人会吗?,第1张

楼主这个回滚机制,针对的是java的事务管理吧! 事务处理之前必须进行取消自动提交,在默认情况下,所有的数据都是被默认提交上去的,就是说只要一执行更新就提交。

取消自动提交之后,如果最后程序的代码(批处理代码)没有出错,则可以进行人为的手工提交。最后如果程序出现了错误,则应该进行回滚。

瑭锦Tanjurd解释一组业务整体处理的行为叫一个事务。这一组的业务都能成功处理,我们就可以把这个事务提交来保存你已做的行为结果。但如果一组中有任何的差错出现的话,我们就认为这事务不成功,需要回滚来撤消之前的操作。举例:你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱?怎么办算了?你不肯吧。所以银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态

向数据库提交数据或修改数据,如果你觉得没有问题,就可以提交,如果其中有一个环节出错了,就可以设置回滚,可以根据判断进行回滚,不是非要出异常了才回滚,如何回滚如何提交要看你的业务逻辑。

比如:

你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱,怎么办?银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态。

--事务处理:

begin tran --开始处理数据时,开启事务

--下面是具体的处理语句

insert into 表 values(1)

if @@error<>0 --如果处理语句出错,回滚事务

begin

rollback tran

goto lbexit

end

update 表 set 字段=1

if @@error<>0 --如果处理语句出错,回滚事务

begin

rollback tran

goto lbexit

end

commit tran --所有执行成功,提交事务

lbexit:

JAVA的话,可以在连接对象上启用事务