簡體   English   中英

如何顯示在 Java 中返回多行的 SQL 查詢

[英]How to display a SQL Query that returns multiple rows in Java

所以我有一個返回多行和多列信息的 SQL 查詢,但我無法在 textArea 中顯示多行。 下面的代碼正確顯示了第一行信息,但我不確定如何讓它也顯示其他 4 行信息。


 String sql4 = "SELECT * FROM CarDescription JOIN LotCarList  ON CarDescription.CarId = LotCarList.CarId JOIN CarLots ON LotCarList.LotId = CarLots.LotId JOIN MakeModel ON CarDescription.MId = MakeModel.MId";
                 
                 PreparedStatement pstmt = con.prepareStatement(sql4);
                 
                 
                 
                 
                 ResultSet rs = pstmt.executeQuery();
                 
                 while(rs.next()) {
                     
                     int carid = rs.getInt(n);
                     n++;
                     int mid = rs.getInt(n);
                     n++;
                     String color = rs.getString(n);
                     n++;
                     int mileage = rs.getInt(n);
                     n++;
                     int Price = rs.getInt(n);
                     n++;
                     int listid = rs.getInt(n);
                     n++;
                     int lotid = rs.getInt(n);
                     n++;
                     int carid2 = rs.getInt(n);
                     n++;
                     int lotid2 = rs.getInt(n);
                     n++;
                     String lotname = rs.getString(n);
                     n++;
                     String lotadd = rs.getString(n);
                     n++;
                     int mid2 = rs.getInt(n);
                     n++;
                     String make = rs.getString(n);
                     n++;
                     String model = rs.getString(n);
                     
                     
                     
                     
textArea.append(" CarID: "+carid + "\n " + "MakeID: " + mid + "\n " + "Color "+ color + "\n " + "mileage " + mileage + "\n " + "Price " + Price + "\n " + "ListId: "+ listid + "\n" + "LotId: "+ lotid + "\n" + "CarId2: "+ carid2 + "\n" + "lotid2: "+ lotid2 + "\n" + "Lotname: "+ lotname + "\n" + "Lotadd: "+ lotadd + "\n" + "Mid2: "+ mid2 + "\n" + "Make: "+ make + "\n" + "Model: "+ model + "\n");

這是 SQL 命令返回的內容 ( https://imgur.com/a/odkoCpr )

文本區域僅顯示第一行( https://imgur.com/a/mNHf9nZ

您在同一 while 循環中使用 carid2,這意味着 cursor 仍處於記錄號 1。此代碼不正確。 您可以執行一些操作,例如在字符串生成器中設置所有值,最后在其附加更多記錄。

StringBuilder sb = new StringBuilder();
while(rs.next()) {
                     
                     int carid = rs.getInt(n);
                     n++;
                     int mid = rs.getInt(n);
                     n++;
                     String color = rs.getString(n);
                     n++;
                     int mileage = rs.getInt(n);
                     n++;
                     int Price = rs.getInt(n);
                     n++;
                     int listid = rs.getInt(n);
                     n++;
                     int lotid = rs.getInt(n);
                     n++;
sb.append("CarID : "+carid);
sb.append("\n");
..
...
...
sb.append("Lot ID:"+lotid);
sb.append("\n");
n=0;
}

textArea.append(sb.toString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM