我在错误地执行 SELECT 查询时遇到了一个奇怪的行为Statement#executeUpdate()
。而 Javadoc 明确指出,executeUpdate() throws SQLException
如果给定的 SQL 语句产生一个 ResultSet 对象。但是当我执行时SELECT * from TABLE_NAME
,我没有得到任何异常。相反,我得到的返回值与否相同。选择的行数,如果没有。小于或等于10。如果没有。大于 10,返回值始终为 10。
Connection conn;
Statement stmt;
try {
conn = getConnection();
stmt = conn.createStatement();
int count = stmt.executeUpdate("SELECT * from TABLE_NAME");
log.info("row count: " + count);
} catch (SQLException e) {
log.error(e);
// handle exception
} finally {
DbUtils.closeQuietly(stmt);
DbUtils.closeQuietly(conn);
}
我正在使用Oracle 10g。
我在这里遗漏了什么,还是由司机来定义自己的行为?