Java SQL查询,最有效的检查匹配列值?

时间:2014-06-26 23:40:45

标签: java mysql sql

我有一张表可能有200到30万行。

我需要检查表中是否存在主键。

这是我到目前为止所拥有的:

public boolean checkIfKeyExists(String userkey) {
    try {
        connection = getSQLConnection();
        PreparedStatement ps = connection.prepareStatement("SELECT userkey FROM " + keytable + " WHERE userkey = ?");
        ps.setString(1, userkey);
        ResultSet rs = ps.executeQuery();
        boolean set = false;
        while(rs.next()){
            set = true;
        }
        close(ps,rs);
        return set;
    } catch (SQLException ex) {
        Error.execute(plugin, ex);
    }
    return false;
}

必须使用结果集并设置一个boolean off,这对于简单的密钥检查而言似乎太长了,你知道吗? 这样做最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

我没有看到使用结果集的方法,但你可以通过只做

来设置布尔值
return ps.executeQuery().next();

然后关闭finally块中的语句和结果集。

答案 1 :(得分:1)

使用您的变量,您可以

set = rs.next();

在SQL部分的Alsi中,你可以拥有SELECT 1 ...,这会更快一些。