在 ResultSet 中搜索特定值方法?

发布于 2024-10-12 09:13:09 字数 289 浏览 4 评论 0原文

是否有一个 ResultSet 方法可以用来搜索 ResultSet 并检查它是否具有特定的值/元素?

类似于 ArrayList.contains() 方法。

如果没有,您不需要输入搜索方法,我会创建一个:)

提前致谢。

Is there a ResultSet method that I can use that would search through a ResultSet and check whether it has the specific value/element?

Similar to ArrayList.contains() method.

If there isn't, you don't need to type up a search method, I'll make one :)

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦中楼上月下 2024-10-19 09:13:09

不要在 Java 端进行搜索。这不必要地缓慢且占用内存。您基本上接管了数据库设计的工作。只需让数据库完成其设计目的即可:借助 SQL 语言功能准确选择并返回您想要的数据。

开始学习 SQL WHERE 子句。例如,要检查用户名/密码是否匹配,请执行以下操作:

connection = database.getConnection();
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE username=? AND password=md5(?)");
preparedStatement.setString(1, username); 
preparedStatement.setString(2, password);
resultSet = preparedStatement.executeQuery();

if (resultSet.next()) {
    // Match found!
} else {
    // No match!
}

Don't do the search in Java side. That's unnecessarily slow and memory hogging. You're basically taking over the job the DB is designed for. Just let the DB do the job it is designed for: selecting and returning exactly the data you want with help of the SQL language powers.

Start learning the SQL WHERE clause. For example, to check if an username/password mathes, do:

connection = database.getConnection();
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE username=? AND password=md5(?)");
preparedStatement.setString(1, username); 
preparedStatement.setString(2, password);
resultSet = preparedStatement.executeQuery();

if (resultSet.next()) {
    // Match found!
} else {
    // No match!
}
流云如水 2024-10-19 09:13:09

假设您指的是 SQL ResultSet,答案是否定的,您必须编写一个。 JDBC 驱动程序通常不会一次检索所有行(如果查询返回 100 万行怎么办)。您必须自己阅读这些行并过滤它们。

Assuming you mean a SQL ResultSet, the answer is no, you have to write one. The JDBC driver usually won't retrieve all the rows at once (what if the query returned 1 million rows). You will have to read the rows and filter them yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文