2017-01-31 4 views
-2

error imagejava.sql.SQLException закрыл соединение следующего

java.sql.SQLException: Закрытое соединение: следующий

на oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112) на oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146) на oracle.jdbc.driver.OracleResultSetImpl.next (OracleResultSetImpl.java:181) в com.mchange.v2.c3p0.impl .NewProxyResu ltSet.next (NewProxyResultSet.java:2859)

Код

if (rs != null) { 
    while (rs.next()) { 
     resultset = Stmt.executeQuery(); 
     if (resultset.next()) { 
      count += resultset.getLong(1); 
      resultset.close(); 
      resultset = null; 
     } 
     Stmt.close(); 
     Stmt = null; 
    } 
} 
+0

Почему set resultset имеет значение null после его закрытия? отправьте больше кода, поскольку это кажется правильным. также ваше соединение кажется закрытым. Вы когда-нибудь открывали его? – XtremeBaumer

+0

Вставить текст ошибки, а не изображение. Я не понимаю, как нажимать на ссылки, которые берут меня, бог знает где. – duffymo

+0

Возможный дубликат [Закрытое соединение: следующее в java] (http://stackoverflow.com/questions/20497778/closed-connection-next-in-java) – code

ответ

1

Ошибка java.sql.SQLException: Closed Connection: next указывает, что resultSet уже закрыт, когда он используется. Избегайте закрытия resultSet, пока не будет гарантировано, что он не будет использоваться кодом ниже по потоку.

Посмотрите на свой фрагмент кода, похоже, что вы закрываете экземпляр Stmt с циклом while и собираетесь использовать его в следующей итерации цикла. Это может быть другой причиной вашей проблемы. В этом случае необходимо создать новый экземпляр экземпляра Stmt с циклом.

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