小混乱(ResultSet,OracleDB,JAVA)

时间:2011-08-08 14:08:22

标签: java database oracle

我可以成功连接到oracle数据库,并使用getAllTableNames()方法打印出所有表名的列表。

我的下一个想法是过滤特定的表格并显示所有列。

我正在运行此查询(我包括整个方法。)

static void getLengths(){
String query = "SELECT column_name from user_tab_columns where table_name = '<MytableName>'"

try{
ResultSet rs = db.runQuery(query);
System.out.println(rs):
} catch (Exception ex) {
System.out.println(ex);
//Seems to be successful
}
} //End of Method

在System.out窗口中,我收到这个,这让我觉得我只需要以某种方式查看我的结果集?

oracle.jdbc.driver.DcrollableResultSet@(different number everytime I run code)

我的结果集隐藏在某个地方吗?观看它的最佳方式是什么?

4 个答案:

答案 0 :(得分:3)

System.out.println(rs)只打印出ResultSet对象的类名和句柄。这没什么用。

您需要遍历结果集并阅读相应的字段。通常你写的东西是:

ResultSet rs=db.runQuery(query) // I don't know where this function is coming from, but okay
while (rs.next())
{
  String myColumn=rs.getString("column_name");
  System.out.println(myColumn);
}
rs.close();

您可能希望一般性地阅读JDBC,并查看用于Connection,Statement和ResultSet的Java Docs。

答案 1 :(得分:2)

您必须迭代ResultSet才能获取值。 做那样的事

while(rs.next()) {System.out.println(rs.getString("COLUMN_NAME"));}

答案 2 :(得分:1)

ResultSet javadoc州

A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

因此,您必须使用适当的getXXX(int index)方法,其中XXX是您的等效Java数据类型。在做其他任何事情之前不要忘记调用next()

阅读Retrieving and Modifying Values from Result Sets,查看您要完成的示例。

答案 3 :(得分:0)

你需要逐步调查结果集,在我的java上非常生疏,但是你可以在结果集上调用“toString()”来至少显示返回的内容,尽管它不会非常有用。 / p>

System.out.println(rs.toString())