- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public void batchUpdate() throws SQLException {
Statement stmt = null;
try {
this.connection.setAutoCommit(false);
stmt = this.connection.createStatement();
stmt.addBatch("INSERT INTO COFFEES VALUES('Amaretto_decaf', 49, 10.99, 0, 0)");
stmt.addBatch("INSERT INTO COFFEES " +"VALUES('Hazelnut_decaf', 49, 10.99, 0, 0)");
int [] updateCounts = stmt.executeBatch();
this.connection.commit();
} catch(BatchUpdateException b) {
JDBCTutorialUtilities.printBatchUpdateException(b);
} catch(SQLException ex) {
JDBCTutorialUtilities.printSQLException(ex);
} finally {
if (stmt != null) { stmt.close(); }
this.connection.setAutoCommit(true);
}
}
问题:
将调用 connection.setAutoCommit(true) 再次提交已经提交的语句(通过方法 connection.commit()
)还是仅恢复您不必调用的默认状态方法自己提交?
在不调用 connection.setAutoCommit(true)
的情况下关闭连接是否会自动调用该方法,或者下次它仍然是 connection.setAutoCommit(false)
打开了吗?
最佳答案
已提交的语句不再提交。
这取决于您的连接源:连接池可能会在该状态下释放时为您提供 autoCommit=false 连接,新连接将以默认值打开。
It is strongly recommended that an application explicitly commits or rolls back an active transaction prior to calling the close method. If the close method is called and there is an active transaction, the results are implementation-defined. http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#close%28%29
关于java - setAutoCommit(true) 是否提交过去的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983748/
public void batchUpdate() throws SQLException { Statement stmt = null; try { this.connection.set
我遇到过this甲骨文java教程。作为该主题的初学者,我无法理解为什么需要在事务结束时设置 con.setAutocommit(true);。 这是神谕的解释: The statement con.
假设我有一个创建数据库连接的常用方法: Connection getConnection() throws SQLException { Connection con = ... // cre
这是典型的项目结构,一旦用户登录到应用程序,就会创建数据库连接。 Login.java{ Creating DB Connection DriverManager.registerDr
如果我们在 Oracle DB 的 Java 类中使用两次 setAutoCommit(true) 会发生什么。 try{ Connection conn = getConnection();
我正在使用 postgresql 9.2 和 C3p0 0.9.2.1,我创建了一个连接定制器来禁用 autoCommit 并设置 transactionMode 但是当我在 InitialConte
如果我执行 connection.setAutoCommit(false); 会发生什么,它会在数据库端创建一个新事务吗? 最佳答案 根据documentation , connection.setA
我注意到一些程序员使用 COMMIT 其他使用 conn.setAutoCommit(true); 来结束事务或回滚那么使用一个而不是另一个? 主要区别在哪里? conn.setAutoCommit(
我注意到一些程序员使用 COMMIT 其他使用 conn.setAutoCommit(true); 来结束事务或回滚那么使用一个而不是另一个? 主要区别在哪里? conn.setAutoCommit(
从池中获取数据库连接 (conn)。 假设该连接上的autocommit 为 TRUE。 现在 conn.setautocommit(false) 已设置; 然后经过几次语句更新,最后 conn.co
我的提问的基本根源来自于这种观察。当我使用Hibernate并进行任何查询时,我在MySQL日志中得到以下内容: SET autocommit=0 insert into SimpleNamedEnt
我在创建连接后立即设置 con.setAutoCommit(false); 以便数据库中没有未提交的内容。但事实证明,如果您关闭连接,则无论您的 setAutoCommit() 状态如何,所有事务都将
DB 是 Oracle。 我想为 SQL 存储过程和函数使用 Connection.setAutoCommit。会成功吗? 对于调用过程,我使用 CallableStatement 最佳答案 不行,c
我正在尝试在 JDBC 中为我正在开发的应用程序执行事务,但 Connection#setAutoCommit(false) 似乎不起作用。代码如下: String insertCliente = "
我遇到了 Postgres 驱动程序的问题,该驱动程序是 9.1-901.jdbc4,我的数据库服务器是 Postgres 10。我在批量更新中遇到问题,因此我尝试将驱动程序更改为版本 42.2.5。
我有一个 Spring Batch 项目,正在使用 Atomikos 进行事务管理。 这是我的数据源配置和atomikos配置。 @Bean public DataSource dataSou
我创建了一个 DBManager 类,如下所示 public class DBManager { public static String DRIVER = "oracle.jdbc.dr
假设我有以下代码。 try { connection.setAutoCommit(false) ; .... .... connection.commit(); } c
我对 set chained 有一些困惑setAutoCommit()中的声明net.sourceforge.jtds.jdbc.Driver中的方法 source code说: 2161 if (
我是一名优秀的程序员,十分优秀!