我必须在我的oracle数据库中插入一些信息。其中一些是复杂的(数组数组),所以我不能将它们传递给PL / SQL函数。不能使用一个查询插入所有数据,我也必须将数据插入到多个表中。但是如果表的插入失败一次,则应该回滚整个插入过程。所以我需要使用交易。
我正在使用java代码和PreparedStatement
,ResultSet
,CallableStatement
以及其他相关内容来从我的java后端执行数据库操作。如何从这个java后端定义和使用事务?基本上我使用的是Spring MVC。
N.B。请不要Hibernate
相关解决方案。
答案 0 :(得分:3)
在获得Estimator
实例后立即使用Connection.setAutoComit(false)
。
这将使您的连接成为非自动提交事务。
请参阅:http://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#setAutoCommit-boolean-
答案 1 :(得分:1)
如果您不使用java 8,请参阅oracle full explanation