Oracle
 sql >> Datenbank >  >> RDS >> Oracle

java.sql.SQLException:Io-Ausnahme:Minus eins von einem Leseaufruf während der JDBC-Verbindung mit Oracle erhalten

Erstens ist die Verbindungs-URL falsch. Post 8080 wird normalerweise von einem Webserver wie Apache Tomcat verwendet. Oracle selbst verwendet einen Standardport von 1521. Siehe auch diese Oracle JDBC-Dokumentation .

Außerdem haben Sie vergessen, aufzurufen ResultSet#next() . Dadurch wird der Cursor auf die nächste Zeile in der Ergebnismenge gesetzt. Die Ergebnismenge wird mit dem Cursor vor zurückgegeben die erste Reihe. Beliebiges getXXX() ruft das ResultSet auf schlägt fehl, wenn Sie den Cursor nicht bewegen.

Wenn Sie mehrere Zeilen in einer Ergebnismenge erwarten, müssen Sie while verwenden Schleife:

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

Oder wenn Sie nur eine Zeile erwarten, dann können Sie auch mit einem if fortfahren Aussage:

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

Für weitere Hinweise und Beispiele zur Verwendung von basic JDBC richtig (auch in JSP/Servlet) finden Sie dieser Artikel nützlich. Die Art und Weise, wie Sie beispielsweise die Anweisung und Verbindung geschlossen haben, ist anfällig für Ressourcenlecks. Auch das Laden des JDBC-Treibers auf GET-Anfrage ist unnötig teuer. Tun Sie es einfach einmal während des Starts der Anwendung oder der Initialisierung des Servlets.