要在java中显示从mysql数据库检索到的多个数据吗
还有我的数据库要在java中显示从mysql数据库检索到的多个数据吗,java,mysql,jdbc,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
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);
}
如果我的输入为“a”,则将“b”显示为相邻节点
如果我的输入为“b”,则将“a”和“c”显示为相邻节点
但在我输入“b”的代码中,它只将“c”显示为相邻节点
如何更正我的代码以显示多个数据。您似乎在寻找JTable,或者每次都创建一个新的JTextField 编辑:我同意@Tim的观点,选择所有内容可能是个坏主意您可以使用
列表
而不是字符串
,例如:
node_name: a b b
node_neighbour: b a c
注意
因为您正在使用PreparedStatement
为什么不这样使用?
:
for(String s : list){
System.out.println(s);
}
嗯?你用
PreparedStatement ps =
con.prepareStatement("select * from neighbour_node where node_name = ?");
ps.SetString(1, nodename);
在一段时间内循环。当然,它每次都会被覆盖,并且只会得到最后找到的值。您应该在一个字符串中收集所有值,并在末尾设置字段。您当前选择的是所有列,这可能是个坏主意。请更新您的问题并向我们展示表结构和预期输出。您可能想考虑什么是<代码> jTeXField1.StEtgs<代码>…覆盖这些值,只显示最后返回的值。相反,您可能希望构造一个值列表,并且只在loop.PreparedStatement ps=con.prepareStatement(“select*from neighbor_node,其中node_name='“+nodename+””)之后调用
jTextField1.setText
;PreparedStatement ps=con.prepareStatement(“从邻居节点中选择*,其中节点名称=”“+nodename+””);例如,上面的查询检索到匹配的数据,比如nodename“b”,它检索到2个数据,比如“a”和“c”。而(rs.next())字符串neigh=rs.getString(2);jTextField1.setText(neigh);在这段代码中,我使用单个文本字段来显示结果。根据我的要求,如果查询从数据库检索到多个数据,我如何显示我的jframe。您可以使用JTable代替jtextfield,您可以在此处查看
PreparedStatement ps =
con.prepareStatement("select * from neighbour_node where node_name = ?");
ps.SetString(1, nodename);
jTextField1.setText(neigh);