Маленькая путаница (ResultSets, OracleDB, JAVA) - PullRequest
0 голосов
/ 08 августа 2011

Я могу успешно подключиться к базе данных 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 ]

3 голосов
/ 08 августа 2011

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 в целом и взглянуть на Документы Java для Connection, Statement и ResultSet.

2 голосов
/ 08 августа 2011

Вы должны перебрать свой ResultSet, чтобы получить значения.Сделай что-нибудь подобное

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

1 голос
/ 08 августа 2011

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(), прежде чем делать что-либо еще!

Прочитайте Извлечение и изменение значений из наборов результатов , чтобы увидеть пример того, чего вы пытаетесь достичь.

0 голосов
/ 08 августа 2011

Вам нужно будет пошагово просмотреть набор результатов, очень ржавый на моем java, но вы, вероятно, можете вызвать toString () для набора результатов, чтобы хотя бы показать вам, что было возвращено, хотя он не очень пригоден для использования.

System.out.println(rs.toString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...