sql >> Databasteknik >  >> RDS >> Oracle

java.sql.SQLException:Io undantag:Fick minus ett från ett lässamtal under JDBC-anslutning med Oracle

För det första är anslutningsadressen fel. Post 8080 används normalt av en webbserver som Apache Tomcat. Oracle själv använder standardporten 1521. Se även denna Oracle JDBC-dokumentation .

Vidare glömde du att ringa ResultSet#next() . Detta kommer att placera markören till nästa rad i resultatuppsättningen. Resultatuppsättningen returneras med markören före första raden. Alla getXXX() anropar ResultSet kommer att misslyckas om du inte flyttar markören.

Om du förväntar dig flera rader i en resultatuppsättning måste du använda while loop:

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

Eller om du bara förväntar dig en rad, kan du också gå vidare med en if uttalande:

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

För fler tips och exempel på hur du använder grundläggande JDBC på rätt sätt (även i JSP/Servlet) kan du hitta denna artikel användbar. Sättet du stängde uttalandet och anslutningen till exempel är benäget att resursläcka. Att ladda JDBC-drivrutinen på GET-begäran är också onödigt dyrt. Gör det bara en gång under programmets start eller servlets initiering.



  1. phpMyAdmin SQL-fel Okänt nyckelord nära FIELDS

  2. Hämta inlägg från icke-blockerande användare

  3. Hur kan jag infoga vanliga data i en tillfällig tabell från olika scheman?

  4. select-satsen inuti insert-satsen i sql returnerar flera rader