想要在java中显示从mysql数据库中检索到的多个数据

时间:2017-02-14 10:18:47

标签: java mysql jdbc

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"作为邻居节点。

如何更正我的代码以显示多个数据。

3 个答案:

答案 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循环中。当然它每次都被覆盖,你只得到最后找到的值。您应该在一个字符串中收集所有值,并在最后设置该字段。