2017-07-07 73 views
1

我必須插入一些信息到我的oracle數據庫。其中一些是複雜的(數組數組),所以我不能將它們傳遞給PL/SQL函數。所有數據都不能使用一個查詢插入,我也必須將數據插入到多個表中。但是,如果插入表失敗一次,整個插入過程應該回滾。所以我需要使用事務。如何從java後端使用oracle數據庫中的事務?

我使用java代碼和PreparedStatement,ResultSetCallableStatement和其他相關的東西來從我的java後端執行數據庫操作。我如何定義和使用這個java後端的事務?基本上我使用Spring MVC。

N.B.沒有Hibernate的相關解決方案。

+0

請閱讀[JDBC(TM)數據庫訪問教程](https://docs.oracle.com/javase/tutorial/ jdbc /),尤其是本章:[使用事務](https://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html) – krokodilko

回答

3

剛剛獲得Connection實例後使用Connection.setAutoComit(false)

這將使您的連接成爲非自動提交事務。

參見:http://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#setAutoCommit-boolean-

+0

然後,我將如何提交從我的Java代碼成功的事務後? –

+0

'Connection.close()'會提交,拋出的異常會回滾。 –

+0

哦,還有'Connection.commit()'和'Connection.rollback()'方法... –

相關問題