Ten eerste is de verbindings-URL verkeerd. Post 8080 wordt normaal gesproken gebruikt door een webserver als Apache Tomcat. Oracle gebruikt zelf een standaardpoort van 1521. Zie ook deze Oracle JDBC-documentatie .
Verder ben je vergeten te bellen ResultSet#next()
. Hierdoor wordt de cursor naar de volgende rij in de resultatenset geplaatst. De resultatenset wordt geretourneerd met de cursor voor de eerste rij. Elke getXXX()
roept de ResultSet
. aan zal mislukken als u de cursor niet verplaatst.
Als u meerdere rijen in een resultatenset verwacht, moet u while
. gebruiken lus:
resultSet = statement.executeQuery();
while (resultSet.next()) {
String columnname = resultSet.getString("columnname");
// ...
}
Of als u slechts één rij verwacht, kunt u ook doorgaan met een if
verklaring:
resultSet = statement.executeQuery();
if (resultSet.next()) {
String columnname = resultSet.getString("columnname");
// ...
}
Voor meer hints en voorbeelden van het gebruik van basis JDBC op de juiste manier (ook in JSP/Servlet) vind je misschien dit artikel bruikbaar. De manier waarop u bijvoorbeeld de verklaring en verbinding hebt gesloten, is vatbaar voor lekken van bronnen. Ook het laden van het JDBC-stuurprogramma op GET-verzoek is onnodig duur. Doe het gewoon één keer tijdens het opstarten van de applicatie of de initialisatie van de servlet.