gpt4 book ai didi

java - 从mysql行中获取数据并通过Java中的ResultSet分别显示

转载 作者:可可西里 更新时间:2023-11-01 08:32:33 25 4
gpt4 key购买 nike

我有一个 mysql 表 user,它由 id、name、password 和 email 列组成。

有没有办法创建某种查询或 java 代码,将在我的消息对话框窗口中打印所有用户名。

try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydb","root","");
String sql = "select * from user;";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
val1 = rs.getString(2);
val2 = rs.getString(3);
}
value = val1 + " " + val2;
JOptionPane.showMessageDialog(null,value);
}catch(SQLException e){
JOptionPane.showMessageDialog(null, e);
}
}

这只会打印表中第一个用户的名字和姓氏:(

我想将它们全部打印在另一个下面!

如果我设置 rs.getString(5); - 它给我一个错误:列索引超出范围。

最佳答案

我建议您避免使用 JOptionPane 来使用此类代码。最好使用一些框架 (Swing) 并将所有用户显示到一个单独的窗口中。

您的代码的问题是变量值位于循环之外(必须是 while 循环,正如 spencer 所说)。

try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydb","root","");
String sql = "select * from user;";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
val = rs.getString(2) + " " + rs.getString(3);
value += val + " ";
}
JOptionPane.showMessageDialog(null,value);
}catch(SQLException e){
JOptionPane.showMessageDialog(null, e);
}

尽量避免这种类型的代码,使用 ArrayList 并将所有用户凭据保存在数组中。然后在您想要的任何位置轻松标记它。

关于java - 从mysql行中获取数据并通过Java中的ResultSet分别显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com