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

如何从MySQL检测空的ResultSet?

戚俊美
2023-03-14
问题内容

如果没有可能的结果,如何检测从MySQL发送的空结果集。


问题答案:

只需检查是否ResultSet#next()返回true。例如

public boolean exist(String username, String password) throws SQLException {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    boolean exist = false;

    try {
        connection = database.getConnection();
        statement = connection.prepareStatement("SELECT id FROM user WHERE username = ? AND password = MD5(?)");
        statement.setString(1, username);
        statement.setString(2, password);
        resultSet = statement.executeQuery();
        exist = resultSet.next();
    } finally {
        close(resultSet, statement, connection);
    }

    return exist;
}

您可以如下使用

if (userDAO.exist(username, password)) {
    // Proceed with login?
} else {
    // Show error?
}

另外,您也可以让它返回一个完全错误的消息,User或者null如果没有,则返回完全错误消息。例如

public User find(String username, String password) throws SQLException {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    User user = null;

    try {
        connection = database.getConnection();
        statement = connection.prepareStatement("SELECT id, username, email, dateOfBirth FROM user WHERE username = ? AND password = MD5(?)");
        statement.setString(1, username);
        statement.setString(2, password);
        resultSet = statement.executeQuery();

        if (resultSet.next()) {
            user = new User(
                resultSet.getLong("id"),
                resultSet.getString("username"),
                resultSet.getString("email"),
                resultSet.getDate("dateOfBirth"));
        }
    } finally {
        close(resultSet, statement, connection);
    }

    return user;
}

User user = userDAO.find(username, password);

if (user != null) {
    // Proceed with login?
} else {
    // Show error?
}


 类似资料:
  • 问题内容: 我在表中有一列,其中可能包含空值或空值。如何检查表中存在的行中的一列是空还是空? 问题答案: 这将选择is 或(空字符串)的所有行

  • 问题内容: 我试图弄清楚如何检查一个字段是否为空或为空。我有这个 我需要添加额外的支票,例如 任何想法如何做到这一点? 问题答案: 无论使用 要么 如果只想检查而不是空字符串,则也可以使用或。但这不适用于空字符串。

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,

  • 我如何检测超过某些配置的应用程序超时的GC(编辑或任何停滞),以便我可以记录警告(或动态延长超时)? 编辑:我不是在要求类似监控的替代方案或变通办法。我正在写一个库,我不能控制环境或设置。虽然我将清楚地说明库的用户必须设置适当的超时时间,但我仍然希望人们能够忽略这一点,在几年后更改jvm堆设置,并忘记增加超时时间。如果我可以在库日志中警告可能的暂停超过配置的超时,支持将会更简单。它不一定是完美的,

  • 本文向大家介绍如何检测MySQL中是否存在表?,包括了如何检测MySQL中是否存在表?的使用技巧和注意事项,需要的朋友参考一下 要检测表的存在,请使用INFORMATION_SCHEMA.TABLES的概念。以下是语法- 要了解上述语法,让我们创建一个表- 这是检测数据库中是否存在表的查询- 这将产生以下输出-

  • 下面的代码引发NullPointerException。即使有