如何在 java 中查看数据库 JDBC ResultSet 中的内容
How to view what is inside database JDBC ResultSet in java
我收到一条错误消息,指出从数据库返回的 ResultSet 中缺少某些 string
。现在我遇到了一个问题:如何查看 ResultSet?
中的内容
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.
执行语句后ResultSet
不包含任何元素。要获取第一行信息,需要做rs.next()
.
这是对 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");
只要您的 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));
}
这会为您提供列名,如果这是您想要的。
通过ResultSet.getMetaData()
从结果集中得到一个ResultSetMetaData
。
ResultSetMetaData
有方法 getColumnCount
和 getColumnName
来枚举列名。
我收到一条错误消息,指出从数据库返回的 ResultSet 中缺少某些 string
。现在我遇到了一个问题:如何查看 ResultSet?
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.
执行语句后ResultSet
不包含任何元素。要获取第一行信息,需要做rs.next()
.
这是对 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");
只要您的 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));
}
这会为您提供列名,如果这是您想要的。
通过ResultSet.getMetaData()
从结果集中得到一个ResultSetMetaData
。
ResultSetMetaData
有方法 getColumnCount
和 getColumnName
来枚举列名。