【问题标题】:How to query database if we need to query with an array of id's in jsp?如果我们需要在jsp中查询一个id数组,如何查询数据库?
【发布时间】:2014-01-08 05:32:05
【问题描述】:

在选择了一些产品后,用户点击了继续按钮。现在我需要在下一页显示选定的数据。我使用以下代码成功获取了所选数据的 id。

String[] array = request.getParameterValues("arrayid");

现在我需要使用“select * from table where id=?”来查询 mysql 数据库。 我可以循环使用这个查询。但是有没有其他或更好的方法来做到这一点?

【问题讨论】:

    标签: mysql database jsp select-query multiple-select-query


    【解决方案1】:

    在选择时使用 IN 关键字 select * from table where id IN(逗号分隔的 ids)

    【讨论】:

      【解决方案2】:
      String[] array = request.getParameterValues("arrayid");    
      String sql = "SELECT * FROM TABLENAME WHERE id IN ?"; 
      PreparedStatement ps = con.prepareStatement(sql);
      ps.setArray(1,con.createArrayOf("CHAR", array));
      

      【讨论】:

      • 感谢您的回复。我明白了这个逻辑。但是在使用 createArrayOf() 方法时出现错误“java.sql.SQLFeatureNotSupportedException”。我用另一种逻辑来解决我的问题。以下链接说明Click Here
      【解决方案3】:

      如果您的问题是如何查询表中的一组 ID,则其他答案正确地将您引向 SQL 的 IN 关键字。但是,如果您特别询问如何在 Java 中执行此操作,则 JDBC 的 PreparedStatement(这是在 Java 中执行查询的一般推荐方式)不会使构建这些 IN 语句变得容易。我在这里发布了一个合理干净地解决这个问题的建议方法:Can PreparedStatement.addBatch() be used for SELECT queries?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-15
        • 2016-05-29
        • 1970-01-01
        • 2017-09-30
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 2012-08-21
        相关资源
        最近更新 更多