【问题标题】:Search a ResultSet for a specific value method?在 ResultSet 中搜索特定的值方法?
【发布时间】:2011-06-10 20:24:08
【问题描述】:

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

类似于ArrayList.contains() 方法。

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

提前致谢。

【问题讨论】:

    标签: java sql search jdbc resultset


    【解决方案1】:

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

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

    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!
    }
    

    【讨论】:

    • 谢谢,这听起来是个好主意,并且解释了为什么 java 没有搜索方法。
    • 确实如此。绝对没有理由将整个 DB 表拖到/复制到 Java 的内存中以仅过滤您想要的数据。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      相关资源
      最近更新 更多