如何查看数据库中的数据库JDBC ResultSet in java
我收到一条错误消息,指出在从数据库返回的ResultSet内丢失了一些string
。现在我有一个问题:我怎么能看到ResultSet里面有什么?如何查看数据库中的数据库JDBC ResultSet in java
谷歌提供的例子有明确的方法,如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.getString(“column_name”) - 你知道列的名字。我想要的 - 发现专栏名称!看看我从数据库中得到了哪些列。 – ovod
@ovod,我明白你想要什么。用一小段文字编辑我的答案,以解决您的问题。 –
@ovod,什么?我给你的解决方案,你接受了我回答你后的答案?哦,我的...不错的一个.. –
通过ResultSet.getMetaData()
从结果集中获取ResultSetMetaData
。
ResultSetMetaData
有方法getColumnCount
和getColumnName
枚举列名称。
你为什么要那样做?如果你想看看,那么你可以使用getString或getInt方法来做到这一点? – SMA
你为什么要这样?你可以迭代你的结果,看看你有什么数据。 –
您的** ResultSet **一次包含一个元素? –