2017-07-07 89 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()'方法... –

相关问题