2009-12-27 12 views
12

Chcę przekonwertować zestaw wyników na listę na stronie JSP. i chcesz wyświetlić wszystkie wartości. To jest mój kwerendy:Zestaw wyników do listy

SELECT userId, userName 
    FROM user; 

Mam wykonany, że przy użyciu PreparedStatement i dostał Resultset. Ale jak przekształcić go jako listy i chcą, aby wyświetlić wynik takiego:

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

Czy wystąpienie obiektu wynikowego jest dostępne na stronie JSP (na przykład utworzone w tagach scriptlet) lub czy jest to tworzone w serwlecie i przekazywane do strony JSP? – Rob

Odpowiedz

27

trzeba iteracyjne nad ResultSet obiektu w pętli, kolejny wiersz, aby wyciągnąć każdą wartość kolumny :

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

Jedyną rzeczą, którą można naprawić, jest zmiana instrukcji na gotowe oświadczenie (jako OP). – Bozho

+2

To prawda, ale tak naprawdę nie ma to znaczenia, ponieważ pytanie dotyczy tylko pobierania danych z obiektu ResultSet. –

+0

Dziękuję za odpowiedź i dyskusje na ten temat. Mam to. Dodałem ten zestaw wyników na liście i go powtórzę. –

5

można zawsze używać Commons DbUtils i MapListHandler. Z Doc:

ResultSetHandler wdrożenie że przekształca ResultSet do listy Maps

więc zajmie to dużo kodu boilerplate się z rąk.

5

Zestaw wyników nie powinien nigdy sięgać strony JSP. Powinien być mapowany do struktury danych lub obiektu i zamknięty w zasięgu metody, w którym został utworzony. To kursor bazy danych, rzadki zasób. Twoja aplikacja wkrótce się z nich wyłączy, jeśli będziesz mieć taki projekt.

Powiązane problemy