2009-12-27 13 views
12

Ich möchte mein Resultset in Liste auf meiner JSP-Seite konvertieren. und möchte alle Werte anzeigen. Dies ist meine Frage:Resultset To Liste

SELECT userId, userName 
    FROM user; 

ich ausgeführt haben, dass PreparedStatement- und bekam die Resultset verwenden. Aber wie es als Liste zu konvertieren und will wie dies das Ergebnis anzuzeigen:

userID userName 
------------------ 
1001 user-X 
1006 user-Y 
1007 user-Z 
+0

Gibt es in der JSP eine Instanz von ResultSet (z. B. in Scriptlet-Tags erstellt) oder wird diese in einem Servlet erstellt und an die JSP übergeben? – Rob

Antwort

27

Sie müssen für Zeile in einer Schleife, Reihe über das ResultSet Objekt iterieren, jede Spalte Wert ziehen :

List ll = new LinkedList(); 
ResultSet rs = stmt.executeQuery("SELECT userid, username FROM USER"); 

// Fetch each row from the result set 
while (rs.next()) { 
    int i = rs.getInt("userid"); 
    String str = rs.getString("username"); 

    //Assuming you have a user object 
    User user = new User(i, str); 

    ll.add(user); 
} 
+0

einzige Sache, die behoben werden konnte, ist die Anweisung in vorbereitete Anweisung zu ändern (wie das OP) – Bozho

+2

True, aber es ist nicht wirklich wichtig, weil die Frage nur betrifft, Daten aus dem Objekt ResultSet. –

+0

Danke für Ihre Antwort und Diskussionen dazu. Ich hab es geschafft. Ich fügte diese Ergebnismenge in die Liste ein und wiederholte sie. –

5

Sie immer Commons DbUtils und die MapListHandler nutzen könnten. Vom doc:

ResultSetHandler Implementierung dass ein ResultSet in eine Liste der Karten konvertiert

so wird es eine Menge Standardcode aus der Hand nehmen.

5

Ein ResultSet sollte nie so weit gehen wie eine JSP. Es sollte in eine Datenstruktur oder ein Objekt mappen und innerhalb des Methodenbereichs geschlossen werden, in dem es erstellt wurde. Es ist ein Datenbank-Cursor, eine knappe Ressource. Ihre App wird Ihnen bald ausgehen, wenn Sie mit einem solchen Design fortfahren.