2011-01-11 7 views
1

Ich weiß, dass es ähnliche Fragen zu diesem gibt, aber ich habe nirgends eine Antwort gefunden. Aus irgendeinem Grund hat ResultSet keine Funktion, um die ganze Zeile in einen String oder ein ähnliches Objekt zu lesen. Daher müssen Sie knifflige Workarounds für das Lesen voller Zeilen erstellen und es wird immer eine spaltenweise Verarbeitung benötigt.Vollständige Zeilen in Java lesen ResultSet

Die Frage ist - was wäre der bevorzugte Weg, dies zu tun?
Eine Beispielabfrage - SELECT a,b,c,d,e FROM table WHERE this=that.
Ich möchte jede Zeile dieser Abfrage zu einer Liste hinzufügen < String> und die Liste zurückgeben, wenn es abgeschlossen ist.
Momentan kann ich nur jede Spalte lesen, sie mit einem String verketten und dann den String zur Liste hinzufügen, und zwar für jede Zeile.
Das Problem ist, dass IMHO dies für ziemlich übermäßigen Code ausgleicht, wenn es in ResultSet allein getan werden konnte.

Irgendwelche Ideen/Vorschläge?

+0

Ein ResultSet dient zum zeilenbasierten Zugriff auf Tabellendaten. Tabellarische Daten sind inhärent zweidimensional, daher haben Sie immer Spalten, es sei denn, Sie verketten bereits die Datenbank. – Joey

+0

Was sollte ein Element in der Liste sein? Wenn Sie wollen, dass alle Werte zusammengespielt werden, dann glaube ich, dass Vincents Lösung funktionieren wird. Hättest du lieber eine Art kommaseparierte Zeichenfolge oder etwas? –

Antwort

3

können Sie SQL verwenden, um die Ergebnisse für Sie so concatenate:

SELECT concat(a, b, c, d, e) as mysinglestringcolumn from table 

Dann in Ihrem resultset haben Sie nur eine einzige Säule zu behandeln.

+0

Ich werde concat_ws verwenden, danke :) – jurchiks