Oracle
 sql >> Baza danych >  >> RDS >> Oracle

java.sql.SQLException:Wyjątek Io:Otrzymano minus jeden z wywołania odczytu podczas połączenia JDBC z Oracle

Po pierwsze, adres URL połączenia jest nieprawidłowy. Post 8080 jest zwykle używany przez serwer WWW, taki jak Apache Tomcat. Sama Oracle używa domyślnego portu 1521. Zobacz także ta dokumentacja Oracle JDBC .

Ponadto zapomniałeś zadzwonić ResultSet#next() . Spowoduje to ustawienie kursora w następnym wierszu w zestawie wyników. Zestaw wyników jest zwracany z kursorem przed pierwszy rząd. Dowolna getXXX() wywołania w ResultSet nie powiedzie się, jeśli nie przesuniesz kursora.

Jeśli spodziewasz się wielu wierszy w zestawie wyników, musisz użyć while pętla:

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

Lub jeśli oczekujesz tylko jednego wiersza, możesz również użyć if oświadczenie:

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

Więcej wskazówek i przykładów korzystania z podstawowego JDBC we właściwy sposób (również w JSP/Servlet) możesz znaleźć ten artykuł użyteczne. Na przykład sposób, w jaki zamknąłeś oświadczenie i połączenie, jest podatny na wyciek zasobów. Również ładowanie sterownika JDBC na żądanie GET jest niepotrzebnie kosztowne. Zrób to tylko raz podczas uruchamiania aplikacji lub inicjalizacji serwletu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Upuść partycje starsze niż 2 miesiące

  2. Zapętlanie wartości, tworzenie dynamicznych zapytań i dodawanie do zbioru wyników

  3. lewe sprzężenie zewnętrzne z wartościami null

  4. Różn. między datami - SQL plus

  5. Oracle DBMS_LOB.INSTR i zawiera wydajność