Что возвращает executeQuery (String sql), когда нет результатов? [дубликат]
Возможные Дубликаты:
Как проверить, имеет ли resultset одну строку или более?
что будет executeQuery(String sql)
возврат, когда результат SQL-запроса равен нулю строк>? Если он возвращает ResultSet
Object, как мы обнаружим, что SQL-запрос ничего не вернул.
предположим, что SQL-запрос является SELECT
заявление.
7 ответов
ты следующий метод ResultSet . Первоначально курсор ResultSet указывает на перед первой строкой, самый первый вызов next () возвращает false означает, что в ResultSet не было данных. См.как получить размер результирующего набора?, так как нет прямого метода size() или length() для результирующих наборов в Java.
метод next () набора результатов перемещает курсор в следующую строку и возвращает логическое значение, указывающее, были ли данные прочитаны или нет. Обычно он используется с циклом while
while (myresultset.next()){
//some statement;
}
В вашем случае первый вызов следующего метода вернет false, если данные не совпадают с запросом.
он вернет ResultSet. Использовать
boolean hasResult = rs.next();
чтобы узнать, есть ли строка результата.
Если ResultSet
возвращается пустым, затем вывод первого вызова next()
метод на этом ResultSet вернет false.
В основном обычная процедура-это что-то среди строк
ResultSet rs = executeQuery("select ....");
while(rs.next()) {
//do something with the results
}
он вернется пустым ResultSet
Если запрос извлекает 0 записей.
Первоначально курсор указывает на перед resultset, когда мы когда-либо вызываем resultset.next()
курсор перемещается в next resultset
(итератор скороговоркой) и return true
Если есть какие-то результаты есть, в противном случае он просто возвращает false
. В этом случае первый вызов next()
возвращает false
.
можно использовать rs.getRow()
метод.
if(rs.getRow() >= 1){
//Has at least 1 result
}
/**
* 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;