如何从数据库中检索特定数据并显示?

    String sql = "Select Product_ID,Order_Quantity,Sub_Total from Order_Menu Where Order_ID='"+order_id_1+"'";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();

    while(rs.next()){

        list.add(rs.getString("Product_ID"));
        list.add(rs.getString("Order_Quantity"));
        list.add(rs.getString("Sub_Total"));

        for(int i = 0;i<list.size();i++){
            String item = list.get(i);
            System.out.println("Item" + i + ":" + item);
        }

我定义数组
ArrayList <String> list = new ArrayList<String>();

我的输出
Item0:P0001
Item1:1
Item2:37.0
Item0:P0001
Item1:1
Item2:37.0
Item3:P0002
Item4:2
Item5:666.0

我的数据库只包含两个项目,即p0001和p002,为什么结果会显示另外一个项目
抱歉,我对数组有点困惑

最佳答案

每次从结果集中添加记录时,都会打印整个列表内容。
在第一次迭代中,list.size() == 3,因此它会打印:
项目0:p0001项目1:1项目2:37.0
在第二次迭代中,list.size() == 6,因此它会打印:
项目0:p001项目1:1项目2:37.0项目3:p002项目4:2项目5:666.0
从而使您的最终输出:
项目0:p001项目1:1项目2:37.0项目0:p001项目1:1项目2:37.0项目3:p002项目4:2项目5:666.0
将for循环移到while语句之外可以修复它。

while(rs.next()){
  list.add(rs.getString("Product_ID"));
  list.add(rs.getString("Order_Quantity"));
  list.add(rs.getString("Sub_Total"));
}

for(int i = 0;i<list.size();i++){
  String item = list.get(i);
  System.out.println("Item" + i + ":" + item);
}

关于java - 从数据库中检索特定数据并显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17628103/

10-10 16:05
查看更多