Warum ResultSet der index in Java Beginnt mit '1' anstelle von null?

Ich versuche den Zugriff mit dem index 0 in der Ergebnismenge, aber ich bin immer Ausnahme

 java.sql.SQLException: Column Index out of range, 0 < 1.

Code :

c = db.getConnection();

String prefQuery = "SELECT pLab from practicals where className = ? AND pFacName = ?";
PreparedStatement stPref = c.prepareStatement(prefQuery);
stPref.setString(1, className);
stPref.setString(2, facName);
ResultSet rsPref = stPref.executeQuery();

while (rsPref.next()){
    MainClass.show(rsPref.getString(0));
}

1 Antworten

  • user7294900
    4. Mai 2019

    ResultSet-Spalten Getter-Methoden start index mit 1 (obwohl der index in der Regel zu starten mit 0 in Java)

    Die ResultSet-Schnittstelle stellt getter-Methoden (getBoolean, getLong, und so weiter) für das abrufen der Spalte Werte aus der aktuellen Zeile. Werte können abgerufen werden, indem entweder der index die Nummer der Spalte (oder den Namen der Spalte. Im Allgemeinen, mit der Spalte index wird effizienter. Die Spalten sind nummeriert von 1

    Sie ändern sollte

    MainClass.show(rsPref.getString(1));
    

    Ähnlich wie die index-setter stPref.setString(1, className);