小编Kal*_*kar的帖子

使用executeUpdate进行SELECT查询的行为

我在Statement#executeUpdate()错误地执行SELECT查询时遇到了一个奇怪的行为.虽然Javadoc明确指出executeUpdate() throws SQLException如果给定的SQL语句产生ResultSet对象.但是当我执行时SELECT * from TABLE_NAME,我没有任何异常.相反,我得到的返回值与no相同.选择的行数,如果没有.小于等于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);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Oracle 10g.

我在这里遗漏了什么,还是由司机来定义自己的行为?

java oracle jdbc

13
推荐指数
1
解决办法
5745
查看次数

标签 统计

java ×1

jdbc ×1

oracle ×1