如何从数据库中检索特定数据并显示?
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/