JavaBean中使用JDBC事務處理

2021-06-07 12:16:31 字數 737 閱讀 7052

在jdbc中怎樣將多個sql語句組合成乙個事務呢?在jdbc中,開啟乙個連線物件connection時,預設是auto-commit模式,每個sql語句都被當作乙個事務,即每次執行乙個語句,都會自動的得到事務確認。為了能將多個sql語句組合成乙個事務,要將auto-commit模式遮蔽掉。在auto-commit模式遮蔽掉之後,如果不呼叫commit()方法,sql語句不會得到jdbc事務處理確認。在最近一次commit()方法呼叫之後的所有sql會在方法commit()呼叫時得到確認。

private static void test() catch(sqlexceptione)catch (sqlexception e1)

e.printstacktrace();

}finallysystem.out.println("執行結束.");

為什麼要使用事務中的rollback()?

疑問:事務如果設定成手動提交的話,那麼如果commit不執行的話資料庫中的內容就不會改變,為什麼還要用到回滾呢,因為不用回滾只要commit

會執行那麼資料庫就不會改變。

回答:     因為資料庫的執行了sql語句然後報錯導致事務不能進行commit的話,雖然資料庫不會改變,但是資料庫中有個快取空間space在,它會在事務還未提交之前把更新的sql語句以及更新後的結果快取在space中,等到commit操作後進行修改資料庫,如果隔離級別比較低的話那麼就會讀取未提交sql中的資料內容,那麼就會導致結果不正確了,故要回滾,把space中的內容還原到最初的位置

在Spring中使用JDBC和JDBC模板的講解

spring dao層中對jdbxhlodvrplc進行了封裝,使程式設計客棧用模板模式的設計模式,通過ioc被動注入的方式將jdbctemplate這個模板類注入到資料物件中,進行資料庫操作。我們要在乙個類中進行crud操作 crud主要被用在描述軟體系xhlodvrpl統中資料庫或者持久層的基本...

Spring中使用JDBC做的增刪改查

spring中使用jdbc做的增刪改查 有三種方式使用jdbc。1 使用jdbctemplate類,實現使用jdbc 引數是用object陣列傳遞的 業務類 public class userdaoimpl implements userdao override public void delete...

MySQL中使用JDBC批量插入記錄的乙個細節

參照網上提供的方法,但是有些細節性的問題總是容易被忘記。以使用使用preparedstatement為例,statement沒有測試過 以下是我在程式中用到的一段 pstmt conn.preparestatement insert into configinfo.keywordstable id,...