一组业务整体处理的行为叫一个事务。这一组的业务都能成功处理,我们就可以把这个事务提交来保存你已做的行为结果。但如果一组中有任何的差错出现的话,我们就认为这事务不成功,需要回滚来撤消之前的操作。
举例:你去银行转账,转账我们有两步吧,从你账户中取出钱再往他账户中加钱。那这两步银行是必须要确保正确无误的进行的。要被看做成一个事务。其中任何一步出错就算是转账失败,但可能你这时是已经从你账户中扣了钱了,又没往他账户里加钱?怎么办算了?你不肯吧。所以银行会事务回滚,不保存你刚才的操作,即恢复到你没转账之前的状态。
所有在数据库增、删、改时,如果一次要修改N条数据,并且必须N条必须同时成功,否则不执行,那么一定要用事务的提交和回滚,并且要设置事务的属性为手动提交
connection.setAutoCommit(false)(commit提交过后再将自动提交属性设置为默认的connection.setAutoCommit(true)自动提交属性);在异常中回滚 connection.rollback(); 这样如果发生异常,数据未全部更新时,异常中的回滚函数会将数据集的数据恢复到修改前。(防止修改部分数据)
转载于:https://www.cnblogs.com/fryy/p/3392818.html