Oracle
 sql >> Base de données >  >> RDS >> Oracle

java.sql.SQLException:Io exception:Got moins un d'un appel de lecture lors de la connexion JDBC avec oracle

Tout d'abord, l'URL de connexion est erronée. Post 8080 est normalement utilisé par un serveur Web comme Apache Tomcat. Oracle lui-même utilise un port par défaut de 1521. Voir également cette documentation Oracle JDBC .

De plus, vous avez oublié d'appeler ResultSet#next() . Cela placera le curseur sur la ligne suivante dans le jeu de résultats. Le jeu de résultats est renvoyé avec le curseur avant la première rangée. Tout getXXX() appelle le ResultSet échouera si vous ne déplacez pas le curseur.

Si vous attendez plusieurs lignes dans un jeu de résultats, vous devez utiliser while boucle :

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

Ou si vous n'attendez qu'une seule ligne, vous pouvez également continuer avec un if déclaration :

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

Pour plus d'astuces et d'exemples d'utilisation de de base JDBC dans le bon sens (également dans JSP/Servlet), vous pouvez trouver cet article utile. La façon dont vous avez fermé l'instruction et la connexion, par exemple, est sujette à des fuites de ressources. De plus, le chargement du pilote JDBC sur requête GET est inutilement coûteux. Faites-le une seule fois lors du démarrage de l'application ou de l'initialisation du servlet.