Statement#executeUpdate()
誤って SELECT クエリを実行しているときに、奇妙な動作に遭遇しました。executeUpdate() throws SQLException
Javadocは、指定された 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を使用しています。
ここで何かが足りないのですか、それともドライバーが独自の動作を定義するのはドライバー次第ですか?