在JDBC3.0中(JDK4.0),引入了一個(gè)新特性Savepoint。我們知道,在JDBC2.0中的事務(wù)支持讓開發(fā)者可以控制對數(shù)據(jù)的并發(fā)訪問,從而保證數(shù)據(jù)的一致性。但有時(shí)候我們需要對事務(wù)多一點(diǎn)的控制,而不是在當(dāng)前的事務(wù)中簡單地對每一個(gè)改變進(jìn)行回滾。在 JDBC 3.0 下,我們可以通過 Savepoint 獲得這種控制。 Savepoint 接口允許您將事務(wù)分割為各個(gè)邏輯斷點(diǎn),以控制有多少事務(wù)需要回滾。下圖將說明如何在事務(wù)中運(yùn)用 Savepoint。 JDBC下使用Savepoint
示例代碼:
示例結(jié)果就是,insert語句將被執(zhí)行,update語句未執(zhí)行,其被回滾了。Hibernate下使用Savepoint
示例:
Spring對Savepoint的支持