我有一个jdbc程序,它从mysql数据库中获取记录并打印出结果。用户可以通过选择不同的复选框从数据库中选择想要的结果,以仅显示特定的结果。
下面是获取记录并打印出来的方法:
private void execute() throws SQLException {
String query = "SELECT * FROM customers";
ResultSet rs = stmt.executeQuery(query);
String result = "";
while (rs.next()) {
if (cb1.isSelected()) {
int custid = rs.getInt("custid");
result += custid + " ";
}
if (cb2.isSelected()) {
String name = rs.getString("name");
result += name + " ";
}
if (cb3.isSelected()) {
String address = rs.getString("address");
result += address + " ";
}
if (cb4.isSelected()) {
String city = rs.getString("city");
result += city + " ";
}
if (cb5.isSelected()) {
String state = rs.getString("state");
result += state + " ";
}
if (cb6.isSelected()) {
int zip = rs.getInt("zip");
result += zip + " ";
}
// print the results
}
System.out.println(result);
results.setText(result);
stmt.close();
}
目前,如果我选中前三个复选框,我将得到输出:
1 Smith, Tim 12 Elm St 2 Jones, Tom 435 Oak Dr 3 Avery, Bill 623 Ash Ave 4 Kerr, Debra 1573 Yew Crt
但是,我想要的结果是:
1, Smith, Tim, 12 Elm St
2, Jones, Tom, 435 Oak Dr
3, Avery, Bill, 623 Ash Ave
4, Kerr, Debra, 1573 Yew Crt
有没有什么方法可以在数据库中的每条记录后面添加新行,或者在每条记录的项之间添加逗号?我是新的jdbc和mysql连接,所以任何帮助或提示表示感谢。
2条答案
按热度按时间juud5qan1#
首先,我会使用
StringJoiner
收集元素。然后,我将消除许多局部临时变量。最后,我会用println
在循环中和另一个循环中StringJoiner
参加决赛result
. 比如,你也可以做同样的事情
Collection
(s) 比如,喜欢你觉得可读性最好的。
0tdrvxhp2#
您可以在while循环结束之前打印每个结果,然后它将在新行中打印每条记录。
或者可以在关闭while循环之前附加行分隔符