1

我正在尝试从某个表中获取所有数据。但它只给我第一行两次结果(因为我在数据库中有两行)

这是我的代码

   String data[]=new String[10];
     String[] result;
     Product p= new Product();
     int serial=0;
       try{
            String sql="select * from product";
            rslt=st.executeQuery(sql);  //where private static Statement st, private static ResultSet rslt;
            while(rslt.next()){
                data[1]=rslt.getString("p_code");
                data[2]=rslt.getString("p_name");
               /* data[3]=rslt.getString("description");
                  data[4]=rslt.getString("measurement");
                  data[5]=Integer.toString(p.RemainProduct(data[1]));
                  data[6]=p.getSellPrice(data[1]);
                  serial+=1;
                  data[0]=Integer.toString(serial);
                  DTB.addRow(data); */
                  System.out.println("code :"+data[1]+" "+"Name :"+data[2]);
              }

     }catch(Exception ex){
         System.out.println("ERROR :"+ex);

     } 

我的表有两个数据,这是我的数据库表数据

在此处输入图像描述

这是我运行程序后的结果。

在此处输入图像描述

我不知道实际问题在哪里。相同的代码在另一种方法上工作正常,但为什么我不能在这里得到它。我对java很陌生,请帮我解决这个问题

4

1 回答 1

1

你的代码对我来说看起来是正确的。我认为这是“您所看到的不是损坏的”的情况。也许您没有查询您认为正在查询的表,或者您的表视图已缓存并且已过期。刷新您的表格视图,并尝试在您的程序输出中打印出 PK(表格中的 id 列),以仔细检查您正在查询的表格是否是正确的表格。此外,请仔细检查您的 JDBC URL 并确认您正在查询正确的数据库。

此外,您的评论表明相同的代码以不同的方法给出了正确的结果。也许您的实际代码中还有更多我们无法深入了解的内容?也许您的代码(未在您的示例中显示)是:

  1. 更新表,使第 1 行和第 2 行具有相同的数据。
  2. 查询数据库(如您的示例所示),并在第 1 行和第 2 行返回相同的数据。
  3. 更新表,使第 1 行和第 2 行现在具有不同的数据,这些数据在您手动查询数据库时显示。

最后,确保您的一些其他团队成员或自动化测试过程不会在您不知情的情况下更新表格。

于 2013-08-15T16:34:01.343 回答