Anstatt komplexe SQL-Abfragen, versucht, fangen und Finale überall im Code habe ich eine Methode execute(SQL, up to three inputs)
jedoch, wenn Sie versuchen, Zugriff auf die ResultsSet erzeugt außerhalb der Ausführung erhalten Sie der Fehler:Java Mit SQL Execute Methode, aber auf Ergebnisse zugreifen
"Operation not allowed after ResultSet closed"
Was ist denn, wenn Sie die PreparedStatement schließen sie die ResultsSetToo schließt (und es scheint sich um sie keine Möglichkeit zu sein).
Gibt es eine Möglichkeit, das zu beheben? Das einzige, was ich denken konnte, war es zu einem Array umzuwandeln, die
Vielen Dank für Ihre Zeit gespeichert ist,
Sie sollten eine 'Map' zurückgeben, um zu vermeiden, dass Informationen über die tatsächlichen zurückgegebenen Datentypen verloren gehen. Und 'rs.getObject (1) .toString()' wird mit einer NullPointerException bombardieren, wenn die Tabelle NULL-Werte enthält. –
Alle zugeordneten JDBC-Typen verfügen über eine toString() -Methode. Und über die Null habe ich keine Probleme gehabt. SELECT * Aus einer meiner Tabellen, in der es ein DATE-Feld mit Nullwerten gibt, wird "Null" auf der Konsole ausgegeben. – athspk
Natürlich haben sie eine toString() -Methode. Aber das Konvertieren des Strings zurück zum "echten" Ding könnte ein Problem sein.Woher weißt du, zu welchem Objekt sie zurück konvertiert werden sollen? Was ist mit der Standardformatierung, die vom Gebietsschema abhängt (Dezimaltrennzeichen, Datumsformate usw.)? Das ist so, als würde man alles in einer varchar-Spalte in der Datenbank speichern ... –