【发布时间】:2016-11-29 04:16:23
【问题描述】:
当我在 java 中执行 statement.executeBatch() 方法时,它返回一个值为 2 的 int 数组
jdbc-spec 对批量更新的返回码有以下说法:
■ 0 或更大
■ Statement.SUCCESS_NO_INFO
■ -2
但我每次都得到 2。 记录已从数据库中成功删除,它从满足查询的两个表中删除了 25 条记录。但在 sysout 中,它显示受影响的 Records 值为 2
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
stmt = conn.createStatement();
System.out.println("trying to execute query");
stmt.addBatch("DELETE FROM TABLE1 WHERE CRTE_TSTP < TRUNC(SYSDATE) - 14");
stmt.addBatch("DELETE FROM TABLE2 WHERE RECV_TSTP < TRUNC(SYSDATE) - 14");
int affectedRecords[] = stmt.executeBatch();
conn.commit();
System.out.println("number of rows deleted " + affectedRecords.length);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
【问题讨论】: