[英]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.