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"作为邻居节点。
如何更正我的代码以显示多个数据。
答案 0 :(得分:0)
似乎你正在寻找JTable javadoc,或者每次都可能创建一个新的JTextField。
编辑:我同意@Tim,选择一切可能是一个坏主意答案 1 :(得分:0)
您可以使用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);
答案 2 :(得分:0)
咦?你用
jTextField1.setText(neigh);
在while循环中。当然它每次都被覆盖,你只得到最后找到的值。您应该在一个字符串中收集所有值,并在最后设置该字段。