Warum erhalte ich diese Fehlermeldung:Fehler "ResultSet geschlossen"
Fehler: java.sql.SQLException: ResultSet geschlossen
von diesem Code:
try{
ArrayList<String> longArray = new ArrayList<String>();
longArray.add("12345678912"); // All column in sqlite database are "text" so that's why I create String List
longArray.add("12345678911");
System.out.println(longArray);
String parameters = StringUtils.join(longArray.iterator(),",");
connection = sqliteConnection.dbConnector();
PreparedStatement pst=connection.prepareStatement("select columnA from TableUser where id in (?)");
pst.setString(1, parameters);
ResultSet rs = pst.executeQuery();
System.out.println(rs.getString("columnA")); // did not print anything, probably rs is empty
rs.close();
Database Details :
Ich habe eine Tabelle TableUser
in der Datenbank, wo es eine Spalte "id" als Text gibt.
Eine andere Frage: Ist der Wert in der Datenbank 12345678912
(TEXT) das gleiche wie longArray.add("12345678912")
?
Das stimmt. Aber while (rs.next()) \t \t { \t \t \t System.out.println (rs.getString ("columnA")); \t \t} habe nichts gedruckt .. Wie kann ich es beheben? Vielen Dank – arkani
Durch eine Abfrage, die eine leere Ergebnismenge nicht zurückgibt. – Kayaman
Versuchen Sie, eine "Anweisung" zu verwenden und die IDs mit der Abfrage zu verketten, um zu sehen, ob sie funktioniert (mit den ''' Trennzeichen für die IDs, wenn sie 'TEXT' sind). Es kann sein, dass der SQLite-Treiber die Art, wie Sie diese vorbereitete Anweisung verwenden, nicht mag. – Kayaman