事务是将一些SQL语句作为一个整体来很执行,要么所有语句全部完成,要么一条语句都不执行。当调用方法commit或rollback时,当前事务即告结束,另一个事务随即开始。
缺省情况下 ,新连接将于自动提交的模式,也就是说,当执行完语句后,将自动对那个语句调用commit方法。这种情况下,由于每个语句都是被单独提交的,因此,一个事务只由一个语句组成。如果禁用自动提交模式,事务将要等到commit或rollback方法被显式调用才结束,因此,它将包括上一次调用commt或rollback方法以来所有执行过的语句。对于第二种情况,事务中的所有语句将作为组来提交或还原。
方法commit使SQL语句对数据库所做的任何更改成为永久性的,它还将释放事务持有的全部锁,而方法rollback将放弃那些更改。
有时用户在另一个更改生效前不想让此更改生效。这可通过禁用自动提交并将两个更新组合在一个事务中来达到。如果两个更新都是成功的,则调用commit方法,从而使两个更新结果成为永久性的;如果其中之一或两个更新都失败了,则调用rollback方法,以将值恢复为进行更新之前的值。
大多数的JDBC驱动程序都支持事务。事实上,符合JDBC驱动程序必须支持事务。DatabaseMetaData给出的信息描述DBMS所提供的事务支持水平。