使用 ScriptRunner "runScript" 方法时,如果一次插入失败则回滚
Rollback if one insert fails, when using ScriptRunner "runScript" method
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);
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);