Java 当没有结果时,executeQuery(字符串sql)返回什么?

Java 当没有结果时,executeQuery(字符串sql)返回什么?,java,sql,jdbc,Java,Sql,Jdbc,可能重复: 当sql查询的结果为零行时,executeQuery(字符串sql)将返回什么?如果它返回一个ResultSet对象,我们将如何检测SQL查询没有返回任何内容 假设SQL查询是一个SELECT语句。您检查了吗。最初,ResultSet的光标指向第一行之前,对next()的第一次调用返回false意味着ResultSet中没有数据。请参阅,因为Java中没有针对结果集的直接size()或length()方法。空的结果集(即resultSet)。next()将返回false。结果集的n

可能重复:

当sql查询的结果为零行时,
executeQuery(字符串sql)
将返回什么?如果它返回一个
ResultSet
对象,我们将如何检测SQL查询没有返回任何内容


假设SQL查询是一个
SELECT
语句。

您检查了吗。最初,ResultSet的光标指向第一行之前,对next()的第一次调用返回false意味着ResultSet中没有数据。请参阅,因为Java中没有针对结果集的直接size()或length()方法。

空的结果集(即
resultSet)。next()
将返回false。

结果集的next()方法将光标移动到下一行,并返回一个布尔值,指示是否已读取数据。通常与while循环一起使用

while(myresultset.next()){
//一些声明;
}

在您的情况下,如果没有与查询匹配的数据,则下一个方法的第一次调用将返回false。

它将返回一个ResultSet。使用

布尔hasResult=rs.next()


要确定是否存在结果行。

如果返回的
ResultSet
为空,则此ResultSet上第一次调用
next()
方法的输出将返回false

基本上,通常的程序就是其中的一些

ResultSet rs = executeQuery("select ....");
while(rs.next()) {
    //do something with the results
}

您可以使用
rs.getRow()
方法

 if(rs.getRow() >= 1){
      //Has at least 1 result
    }


如果查询获取0条记录,它将返回空的
ResultSet

最初,当我们调用
resultset.next()
时,光标指向结果集之前,光标移动到下一个
resultset
(迭代器模式),如果存在任何结果,则返回
true
,否则只返回
false
。在这种情况下,对
next()
方法的第一次调用返回
false

您尝试过吗?应该返回还是清空resultSet@JigarJoshi我们将如何检测返回的对象包含零行?返回
false
以防没有更多数据。我找到的最佳方法是在SO答案的第二部分,他不使用
next()
进行检查。顺便说一句,是的,它返回一个ResultSet对象。Java中的ResultSet没有size()或length()方法。myresultset.first()和myresultset.next()是否对第一次调用执行相同的工作?我想是的,如果它取决于实现的话,事件。试试看。使用
if(myresult.next())
如果没有任何内容,则返回false。
/**
    * Retrieves the current row number.  The first row is number 1, the
    * second number 2, and so on.
    * <p>
    * <strong>Note:</strong>Support for the <code>getRow</code> method
    * is optional for <code>ResultSet</code>s with a result
    * set type of <code>TYPE_FORWARD_ONLY</code>
    *
    * @return the current row number; <code>0</code> if there is no current row
    * @exception SQLException if a database access error occurs
    * or this method is called on a closed result set
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
    * this method
    * @since 1.2
 */
      int getRow() throws SQLException;