当前位置: 首页 > 面试题库 >

Java中的ExecuteQuery()与getResultSet()

濮阳振
2023-03-14
问题内容

statement.executeQuery和之间有什么区别statement.getResultSet()。我相信两者都会返回ResultSet一条select语句,但是当我们应该使用它们中的哪一个时,有任何特定的标准。


问题答案:

通常,executeQuery如果知道执行的是select语句,则应使用。该getResultSet()方法本身 不会执行该语句

所述getResultSet的目的是在与组合使用execute。该execute方法适用于未知的语句类型,或可能产生多个结果(即0或多个更新计数或结果集)的语句。

简而言之:您通常应使用executeQuery

一个简单的示例,execute如果代码不知道它将执行什么查询(更新,查询或更复杂的查询),例如在执行用户提供的查询时,您应该使用它。

另一个示例是SQL Server存储过程,它可以返回多个更新计数和结果集。

处理结果的通用方法execute是:

boolean isResultSet = statement.execute(sql);
while (true) {
    if (isResultSet) {
        try (ResultSet rs = statement.getResultSet()) {
            // do something with result set
        }
    } else {
        int updateCount = statement.getUpdateCount();
        if (updateCount == -1) {
            // -1 signals no more results
            break;
        }
        // do something with update count
    }
    // move to next result
    isResultSet = statement.getMoreResults();
}

这样可以确保所有*结果都得到处理。

*:此示例忽略了允许将多个异常与结果集和更新计数交错的系统(如SQL Server)的异常结果.



 类似资料:
  • 问题内容: 我对此方法有一个疑问:st显然是一个Statement对象。直接从这个甲骨文的Java教程: execute:如果查询返回的第一个对象是ResultSet对象,则返回true。如果查询可以返回一个或多个ResultSet对象,请使用此方法。通过重复调用Statement.getResutSet来检索从查询返回的ResultSet对象。 “ 一个或多个ResultSet对象 ” 是什么意

  • 我不明白为什么executeQuery方法会抛出异常,我尝试在mysql上运行语句,结果正常。 这是代码: 以下是跟踪:

  • 问题内容: 我正在执行一个简单的preparestatement查询执行,并抛出此错误:java.sql.SQLException:net.sourceforge.jtds.jdbc.JtdsPreparedStatement.notSupported的这种类型的语句不支持使用executeQuery(string)方法(net.sourceforge.jtds.jdbc.JtdsPrepared

  • 我使用Java中的preparedStatement从MySql中的表中获取两列。如果直接在mySql DB上执行查询,则查询有效并返回行。但是对于这个方法调用,ResultSet在每个ResultSet上都有值“false”。next()调用。代码如下: 我在控制台上得到以下输出: 请帮助我如何解决此问题,并使用正确的数据获得正确的结果集。

  •  executeQuery方法用于执行产生单个结果集的SQL语句,如SELECT语句。executeQuery方法不能执行INSERT、UPDATE、DELETE以及DDL语句,如果执行这些语句,executeQuery将抛出SQLException异常。executeQuery方法的定义如下: ResultSet executeQuery(String sql) throws SQLExcept

  • 我正在使用tomcat、jsp和MSSQL2008,希望获得一些汇总数据,如每日、每周、每月和每年。从这里,我搜索了如何对来自MSSQL的这些摘要数据使用datapart()函数。在JSP中,我使用 在MSMS中,查询指令进行测试。 我在JSP程序中遇到了两个问题,但在MS SQL Server Management Studio中使用相同的查询可以很好地工作。 null 我的问题是: