SQL проверить, содержит ли таблица значение? - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в SQL. Моя цель - создать программу, которая должна проверять, имеет ли определенная таблица определенное значение. Я написал этот метод

 public boolean existString(final String query) {
    try {
        final Statement statement = this.conn.createStatement();
        result = statement.executeQuery(query);
        return true;
    } catch(SQLException e) {
        e.printStackTrace();
        return false;
    }
}

Как видите, это метод для выполнения SQL -операции. Я думаю, что это может быть правильное утверждение:

String query = "select * from table where column1 = 'checkvalue'"; // of course i need to replace table and column and checkvalue

Но после выполнения этого оператора, как я могу доказать, было ли оно успешным (возвращает ли запрос что-то)? Если оператор после выполнения что-то вернет, я могу легко проверить его с помощью оператора if.

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Оператор SQL может успешно возвращаться, если из базы данных не возвращаются строки, поэтому использование SQLException не поможет вам, если запрос правильный, но нет совпадения.

public boolean existString(final String query) {
    try {
        final Statement statement = this.conn.createStatement();
        result = statement.executeQuery(query);
        return result.next();
    } catch(SQLException e) {
        e.printStackTrace();
        return false;
    }
}

Вы должны использовать тот факт, что result.next() пытается переместить указатель результата на следующую строку и вернуть, независимо от того, есть ли строка для возврата. Таким образом, в случае успеха и есть результаты, возвращается true, а в случае успеха, а не результатов, возвращается false. Если что-то пойдет не так, об остальном позаботится ваша обработка исключений.

0 голосов
/ 18 июня 2020

Да, вашего метода и SQL запроса достаточно для проверки. Если в запросе нет вывода строки, он будет пустым.

...