我有一个LoginID数据库,不能包含1000个用户。现在要检查用户是否存在,正在将数据库的所有LoginID值存储到一个arraylist中,而不是使用它来检查它是否存在。
码:
while(result.next())
{
String str = result.getString(1);
LoginID_arraylist.add(str);
}
if(LoginID_arrayList.contains(loginid)
{
// if exist --> than another query using loginid
}
这是达到我想要的结果的好方法吗?还有什么替代方法.....如果我的身材进一步扩大,会影响我的表现吗?
我正在使用MySql和JDBC。
最佳答案
不要使用ArrayList
进行contains
搜索。具有O(n)性能。而是使用具有O(1)查找的HashSet
。
但是,更好的是不要首先查询所有行。只需进行查询:
SELECT COUNT(*) FROM users WHERE login_id = ?
然后查看结果是否为0。