Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Oracle JDBC自动提交_Java_Sql_Oracle_Jdbc - Fatal编程技术网

Java Oracle JDBC自动提交

Java Oracle JDBC自动提交,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,假设我的代码大致类似如下:(使用Oracle10gJDBC)。在这个特定场景中是否会提交事务 public void someMethod(){ try { OracleConnection connection = getConnectionFromPool(); connection.setAutoCommit(false); // Do some transaction here - complete transaction, no errors

假设我的代码大致类似如下:(使用Oracle10gJDBC)。在这个特定场景中是否会提交事务

    public void someMethod(){
    try {
    OracleConnection connection = getConnectionFromPool();
    connection.setAutoCommit(false);

    // Do some transaction here - complete transaction, no errors occurred

    ...

    //Throw my own exception here
    throw new Exception("Custom Exception");


    } catch (Exception e}
    {
      ...
    }
    finally {
      connection.setAutoCommit(true);
    }
    }

否。删除
连接。设置自动提交(false)

finally {
      connection.commit();
    }

否。删除
连接。设置自动提交(false)

finally {
      connection.commit();
    }
,它应承诺:

注意:如果在事务期间调用此方法并更改自动提交模式,则事务将被提交。如果调用setAutoCommit且未更改自动提交模式,则该调用为不可操作

但是:如果你依赖这一点,这意味着你依赖司机来遵守这一要求——这是我不会做的事情(我永远不会依赖暗中发生的事情)

如果要确保事务已提交,请调用
commit()

,它应提交:

注意:如果在事务期间调用此方法并更改自动提交模式,则事务将被提交。如果调用setAutoCommit且未更改自动提交模式,则该调用为不可操作

但是:如果你依赖这一点,这意味着你依赖司机来遵守这一要求——这是我不会做的事情(我永远不会依赖暗中发生的事情)


如果要确保事务已提交,请调用
commit()

否,如果没有错误,则必须提交()事务,否则将回滚。尝试时会发生什么情况?@Sudhanshu:不符合JDBC JavaDocs(请参阅我的答案)。不,如果没有错误,则必须提交()事务,否则就回滚。当你尝试它时会发生什么?@Sudhanshu:根据JDBC JavaDocs(见我的答案),这不是文档所说的。这不是文档所说的。