事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性
(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行中的任何失败都将使事务所做的任何更改无效。一致性表示在事务失败时,受事务影响的所有数据都应还原到其执行前状态。隔离表示事务执行期间对数据的更改对事务提交之前的其他事务不可见。
通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行,要么撤销不执行。
既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系?
实际上,一个Java应用系统,如果要操作数据库,则JDBC来实现的。增加、修改、删除都是相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。