sql >> Base de Datos >  >> RDS >> Oracle

java.sql.SQLException:excepción Io:Obtuve menos uno de una llamada de lectura durante la conexión JDBC con Oracle

Primero, la URL de conexión es incorrecta. La publicación 8080 normalmente la utiliza un servidor web como Apache Tomcat. Oracle mismo usa un puerto predeterminado de 1521. Consulte también esta documentación de Oracle JDBC .

Además, olvidó llamar a ResultSet#next() . Esto colocará el cursor en la siguiente fila del conjunto de resultados. El conjunto de resultados se devuelve con el cursor antes la primera fila. Cualquier getXXX() llama al ResultSet fallará si no mueve el cursor.

Si espera varias filas en un conjunto de resultados, debe usar while bucle:

resultSet = statement.executeQuery();
while (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

O si espera solo una fila, también puede continuar con un if declaración:

resultSet = statement.executeQuery();
if (resultSet.next()) {
    String columnname = resultSet.getString("columnname");
    // ...
}

Para obtener más sugerencias y ejemplos del uso de basic JDBC de la manera correcta (también en JSP/Servlet) puede encontrar este artículo útil. La forma en que cerró la declaración y la conexión, por ejemplo, es propensa a la fuga de recursos. Además, cargar el controlador JDBC en la solicitud GET es innecesariamente costoso. Solo hágalo una vez durante el inicio de la aplicación o la inicialización del servlet.