java - 使用 ScriptRunner "runScript"方法时,如果一次插入失败则回滚

标签 java jdbc oracle11g ibatis ojdbc

Connection con = null;
    try {
        con = datasource.getConnection();

        ScriptRunner sr = new ScriptRunner(con);
        Reader reader = new BufferedReader(new FileReader("filePath");
        sr.runScript(reader);

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } finally {
        if (con!=null) try {con.close();}catch (Exception ignore) {}
    }

上面是我用来执行 SQL 脚本文件的代码片段。

如果我在脚本内有多个插入,我想执行一个事务内的所有插入,如果其中一个失败,则不应将任何内容写入数据库。

我想通过代码而不是脚本来处理这个问题。

最佳答案

通过将“StopOnError”参数设置为 true 来实现此目的。

        ScriptRunner sr = new ScriptRunner(con);
        sr.setStopOnError(true);

关于java - 使用 ScriptRunner "runScript"方法时,如果一次插入失败则回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59730342/

相关文章:

java - 如何垂直堆叠 AlertDialog 按钮?

java - 表中的行顺序

java - 如何在addBatch()中添加SELECT语句?

java - getEhcache() 的 Ehcache NullPointerException

java - 如何使用 Java 和 JDBC 向数据库发送 HashMap 或从数据库接收 HashMap?

java - 如何在 Netbeans 项目中添加指定相对路径的 .jar 文件

java - 如何更改函数中的引用

sql - 防止更新不存在的行

maven-2 - Ant、Maven 和 Jdeveloper SOA 扩展

plsql - Forall 语句中立即执行的编译问题