2009-12-27 13 views
12

Quiero convertir mi conjunto de resultados a la lista en mi página JSP. y quiere mostrar todos los valores. Esta es mi consulta:Conjunto de resultados a la lista

SELECT userId, userName 
    FROM user; 

yo haga que el uso de PreparedStatement y consiguió el conjunto de resultados . Pero la forma de convertirlo en forma de listay quieren mostrar el resultado como este:

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

¿Hay una instancia de ResultSet disponible en el JSP (por ejemplo, creada dentro de etiquetas scriptlet) o está siendo creada en un servlet y pasada al JSP? – Rob

Respuesta

27

Es necesario iterar sobre la conjunto de resultados objeto en un bucle, fila por fila, para sacar cada valor de columna :

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

Lo único que se puede arreglar es cambiar la declaración a la declaración preparada (como el OP) – Bozho

+2

Es cierto, pero en realidad no importa porque la pregunta solo se trata de obtener datos del objeto ResultSet. –

+0

Gracias por su respuesta y discusiones sobre esto. Entiendo. Agregué esos resultados en la Lista y los reescalculé. –

5

siempre se puede utilizar Commons DbUtils y la MapListHandler. Desde el doc:

ResultSetHandler aplicación que convierte un conjunto de resultados en una lista de Mapas

por lo que va a tomar una gran cantidad de código repetitivo de las manos.

5

Un ResultSet nunca debería llegar tan lejos como un JSP. Debería estar mapeando en una estructura de datos u objeto y cerrado dentro del alcance del método en el cual fue creado. Es un cursor de base de datos, un recurso escaso. Su aplicación se agotará pronto si persiste con dicho diseño.

Cuestiones relacionadas