簡體   English   中英

希望在Java中顯示從mysql數據庫檢索到的多個數據

[英]Want to display more than one data retrieved from mysql database in java

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/amd", "root", "");
PreparedStatement ps = con.prepareStatement("select *from neighbour_node where node_name='" + nodename + "' ");
ResultSet rs = ps.executeQuery();
while (rs.next()) {

    String neigh = rs.getString(2);
    jTextField1.setText(neigh);
}

還有我的數據庫

node_name:       a b b

node_neighbour:  b a c

如果我的輸入是“ a”,則顯示“ b”作為鄰居節點。

如果我的輸入是“ b”,則顯示“ a”和“ c”作為鄰居節點。

但是在我輸入“ b”的代碼中,它僅將“ c”顯示為鄰居節點。

如何更正我的代碼以顯示多個數據。

似乎您在尋找JTable javadoc ,或者每次都創建一個新的JTextField。

編輯:我同意@Tim,選擇所有內容可能不是一個好主意

您可以使用List<String>代替String ,例如:

List<String> list = new ArrayList<>();

while(rs.next()){
    list.add(rs.getString(2));
}

這樣,您可以獲取String列表,並可以通過Simple循環顯示它:

for(String s : list){
   System.out.println(s);
}

注意

因為您使用的是PreparedStatement所以為什么不使用? 像這樣:

PreparedStatement ps = 
       con.prepareStatement("select * from neighbour_node where node_name = ?");
ps.SetString(1, nodename);

咦? 你用

jTextField1.setText(neigh);

在一個while循環中。 當然,每次都會覆蓋它,並且您只會得到找到的最后一個值。 您應該將所有值收集在一個字符串中,並在最后設置該字段。

暫無
暫無

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

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