Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

java.sql.SQLException:Exceção de Io:Obteve menos um de uma chamada de leitura durante a conexão JDBC com o oracle


Primeiro, o URL de conexão está errado. Post 8080 é normalmente usado por um servidor web como o Apache Tomcat. A própria Oracle usa uma porta padrão de 1521. Consulte também esta documentação do Oracle JDBC .

Além disso, você esqueceu de chamar ResultSet#next() . Isso definirá o cursor para a próxima linha no conjunto de resultados. O conjunto de resultados é retornado com o cursor antes a primeira fila. Qualquer getXXX() chama no ResultSet falhará se você não mover o cursor.

Se você espera várias linhas em um conjunto de resultados, precisa usar while ciclo:
resultSet = statement.executeQuery();
while (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

Ou, se você espera apenas uma linha, também pode prosseguir com um if declaração:
resultSet = statement.executeQuery();
if (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

Para mais dicas e exemplos de uso do básico JDBC do jeito certo (também em JSP/Servlet) você pode encontrar este artigo útil. A maneira como você fechou a instrução e a conexão, por exemplo, é propensa a vazamento de recursos. Também carregar o driver JDBC na solicitação GET é desnecessariamente caro. Basta fazer isso uma vez durante a inicialização do aplicativo ou a inicialização do servlet.