当前位置: 首页 > 知识库问答 >
问题:

如何在 java 中查看数据库 JDBC ResultSet 中的内容

百里文景
2023-03-14

我收到一个错误消息,说从数据库返回的结果集内缺少某个< code>string。现在我有一个问题:我怎样才能看到结果集中的内容?

google上可用的示例是显式方法,如getString()getInt(),但这些方法假设您知道您在寻找什么。我真正需要的是-查看ResultSet中有哪些元素可用。

就像当我发出resultSet.toString()命令时,它会向我显示某种带有变量名的映射——这可能吗?

编辑:

如果有用,下面是一段代码:

public Project mapRow(ResultSet resultSet, int i) throws SQLException {
        System.out.println(resultSet.toString());
        return new Project(resultSet.getInt("project_id"), resultSet.getString("project_name"),
                            resultSet.getString("project_description"), new Category(resultSet.getInt("category_id"),
                                                                                    resultSet.getString("category_name")),
                            resultSet.getString("project_link"), resultSet.getString("project_qa"));
    }

错误:

Caused by: org.postgresql.util.PSQLException: The column name category_id was not found in this ResultSet.

共有2个答案

姚烨
2023-03-14

通过 ResultSet.getMetaData() 从结果集中获取 ResultSetMetaData

ResultSetMetaData具有用于枚举列名的方法getColumnCount

商冠玉
2023-03-14

ResultSet在执行语句后不包含任何元素。要获取第一行信息,您需要执行rs.next()

下面是对< code>ResultSet值的简单迭代。

boolean hasValue = false;
while(resultSet.next())
{
    hasValue = true;
    out.println(resultSet.getString("column_name");
    out.println(resultSet.getInt("column_name");
}
if(hasValue)
    out.println("Result set has values inside of it");
else out.println("Result set has no values inside of it");

只要您的< code>resultSet变量中有一些值,您就需要迭代它以获得下一个值。默认情况下,执行查询后,查询中没有值,因为它可能没有值。

编辑:

ResultSetMetaData metaData = resultSet.getMetaData();
int count = metaData.getColumnCount(); //number of column
String columnName[] = new String[count];

for (int i = 1; i <= count; i++)
{
   columnName[i-1] = metaData.getColumnLabel(i)); 
}

这将为您提供列名,如果这是您想要的。

 类似资料:
  • 我一直在使用Android Studio开发我的应用程序,因为它是发布的。 所有的工作都很好直到最近,我不得不调试和检查数据库文件一起。由于我不知道如何直接看到数据库,所以当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。 为此,我必须打开。一旦我打开DDMS,我必须重新连接USB,并且我失去了我的调试线程。检查完数据库文件后,我必须关闭DDMS并再次重新连接USB以回到调试模

  • 问题内容: 我设法在正在开发的Java应用程序中获得内存“泄漏”。运行我的JUnit测试套件时,我会随机退出内存异常(java.lang.OutOfMemoryError)。 我可以使用哪些工具来检查我的Java应用程序的堆,以查看所有堆中正在使用的工具,以便可以确定哪些保留了对应该能够进行垃圾收集的对象的引用。 问题答案: VisualVM包含在Java的最新版本中。您可以使用它来创建堆转储,并

  • 问题内容: 如何查看我的数据库上是否有索引? 一张特定的桌子怎么样? 问题答案: 要查看特定表的索引,请使用SHOW INDEX: 要查看特定模式中所有表的索引,可以使用INFORMATION_SCHEMA中的STATISTICS表: 删除where子句将为您显示所有架构中的所有索引。

  • 对于表单创建者,不错过任何一条重要的数据是很重要的。关注金数据微信公众号就可以随时随地免费收到数据提醒,并查看数据详情。 接收新数据提醒 进入表单「设置」-「提醒推送」-「系统自动推送提醒」,点击「绑定微信号」按照提示绑定个人微信。勾选此项,保存设置,如图 1 所示。 图1 勾选新数据微信自动提醒 这时候你的个人微信号可以接受新数据的微信提醒了,点击「详情」,可查看此条数据的所有信息,如图 2 所

  • 问题内容: 本文介绍如何在Java VisualVM中查看内存分配堆栈跟踪:http : //rejeev.blogspot.de/2009/04/analyzing-memory-leak-in- java.html 简而言之,请在Java VisualVM选项中定义一个自定义预设,然后选中 “ 内存设置”选项卡中的 “记录分配堆栈跟踪”复选框 。 现在,当我选择该自定义预设并开始内存分析时,我

  • 本文向大家介绍如何查看postgres数据库端口,包括了如何查看postgres数据库端口的使用技巧和注意事项,需要的朋友参考一下 如下所示: Linux: 示例输出: 补充:postgresql 端口不对外开放问题 突然遇到了一个问题, 服务器的postgresql连接不上了,用nmap扫了以下5432端口没有打开 但是在服务器上netstats ps -e|grep 5432 nmap ipt