我有一张表可能有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,这对于简单的密钥检查而言似乎太长了,你知道吗? 这样做最简单的方法是什么?
答案 0 :(得分:1)
我没有看到使用结果集的方法,但你可以通过只做
来设置布尔值return ps.executeQuery().next();
然后关闭finally
块中的语句和结果集。
答案 1 :(得分:1)
使用您的变量,您可以
set = rs.next();
在SQL部分的Alsi中,你可以拥有SELECT 1 ...
,这会更快一些。