2013-06-11 4 views
0

ResultSet У меня есть класс, в котором я получаю ResultSet из базы данных:Ошибка при получении

public ResultSet GetDataFromDB() { 
    ResultSet resultset = null; 
    try { 
     DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
     System.out.println("Connecting to the database..."); 
     Connection connection = DriverManager.getConnection(
       "jdbc:oracle:thin:@host:1521:DBname", "user123","pass123"); 
     Statement statement = connection.createStatement(); 
     resultset = statement.executeQuery("select * from tablename"); 

     while (resultset.next()) { 
      System.out.println(resultset.getInt(1) + " " + 
      resultset.getInt(2) + " " + 
      resultset.getInt(3) + " " + 
      resultset.getString(4)); 
     } 
     // statement.close(); 
     //connection.close(); 
    } catch (Exception e) { 
     System.out.println("The exception raised is:" + e); 
    } 

    return resultset; 
} 

В этом classs я могу напечатать данные, которые я получаю в результирующем. но когда я попытался получить этот набор результатов в другом классе:

Classname obj= new Classname(); 
ResultSet tempResultSet = obj.GetDataFromDB(); 
System.out.println("Records Exist "+tempResultSet.next()); <-----false 

У меня нет данных. также нет DataTable здесь в Java, как в .net, так что я могу использовать это ... Пожалуйста, касаются благодаря

ответ

2
while (resultset.next()) { 

Вы уже прочитали все данные из ResultSet в этом цикле.

ResultSet - одноразовый просмотр данных только в режиме прямого доступа; вы можете только повторять его один раз.

+0

спасибо .. это своего рода странно, что мы можем использовать его только один раз :) – Aquarius24

+1

@ Aquarius24: No; это не странно. 'ResultSet' не сохраняет результаты в памяти; вместо этого он передает их непосредственно из базы данных. В противном случае он будет потреблять большие объемы памяти. – SLaks

+0

Хорошо, но должен существовать компонент типа «datatable», чтобы мы могли его использовать в любое время и n раз. – Aquarius24

Смежные вопросы