gpt4 book ai didi

java - 为什么这会返回 "org.apache.derby.client.net.NetResultSet42@1b5f7aa"

转载 作者:行者123 更新时间:2023-11-29 05:11:07 26 4
gpt4 key购买 nike

我正在尝试将我的数据库显示到 java 中的文本区域中。下面的代码有效,但它显示的是“org.apache.derby.client.net.NetResultSet42@1b5f7aa”而不是数据。任何想法为什么?以及我该如何纠正这个问题

我的代码

public static String listAll() {
String output = listHeader();
try {
ResultSet res = stmt.executeQuery("SELECT * from STUDENT.MESSAGES");
while (res.next()) { // there is a result
//output += formatListEntry(res);
output += res;
output +=System.lineSeparator();
}
} catch (Exception e) {
System.out.println(e);
return null;
}
return output;
}

最佳答案

ResultSet没有实现 toString方法,所以您看到的是 Object#toString 中定义的默认实现.

相反,您应该从 ResultSet 中获取数据使用 ResultSet#getXyz方法:

ResultSet res = stmt.executeQuery("SELECT * from STUDENT.MESSAGES");
while (res.next()) { // there is a result
//output += formatListEntry(res);
output += res.getString("column1");
output += " ";
output += res.getString("column2");
output +=System.lineSeparator();
}

一些建议:

  • 在您的查询中,检索相关列,不要使用 "*" .将其用于仅用于测试目的
  • ResultSet 读取数据时,最好使用列的名称而不是预期的索引。这是为了防止其他人更改表格并在表格中间添加一列,这也有助于提高代码的可读性和可调试性。
  • 如果你必须从数据库中读取几行,最好返回一个List<YourObject>。而不是一个巨大的字符串。

关于java - 为什么这会返回 "org.apache.derby.client.net.NetResultSet42@1b5f7aa",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28457824/

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