Ich habe ein ResultSet-Objekt, das alle von einer SQL-Abfrage zurückgegebenen Zeilen enthält.
Ich möchte (im Java-Code, NICHT erzwingen in der SQL) in der Lage sein, ein ResultSet zu nehmen und es so zu transformieren, dass es nur 1 (die erste) Zeile enthält.
Was wäre der Weg dies zu erreichen? Gibt es auch eine andere geeignete Klasse (irgendwo in java.sql oder anderswo), um nur eine einzelne Zeile zu speichern, anstatt mein ResultSet zu trimmen?
Danke!
Nur die Anzahl der Zeilen in begrenzen Ergebnismenge können Sie Folgendes tun:
%Vor%Wie für eine bestimmte Klasse, die nur eine Zeile enthalten kann, hängt das wirklich davon ab, was Sie mit den Daten machen wollen. Sie könnten zum Beispiel nur den Inhalt der Ergebnismenge und speichern Sie sie in einem Array, oder wenn Sie Namen und Werte benötigen, ein Karte . Sie könnten die Daten auch einfach in ein POJO einlesen, wenn Sie lieber mit einem bestimmten Objekt als mit einer generischen Datenstruktur arbeiten möchten.
Sie verweisen auf die Notwendigkeit, eine einzelne Datenzeile zu speichern. In diesem Fall würde ich sagen, dass die Verwendung einer ResultSet
wahrscheinlich eine schlechte Idee ist In der Regel werden Datenbankressourcen bis zum Schließen verbraucht (z. B. die zugrunde liegende java.sql.Connection
).
Stattdessen würde ich empfehlen, die erste Zeile von ResultSet
in ein POJO zu lesen, vielleicht Spring-JDBC-Dienstprogrammklassen (z. B. RowMapper
) zu verwenden, um dies präzise zu erreichen. Unmittelbar danach schließen das ResultSet
und das zugehörige Statement
und Connection
(oder erlauben Spring, dies für Sie zu tun).