Foros del Web » Programación para mayores de 30 ;) » Java »

page by page iterator

Estas en el tema de page by page iterator en el foro de Java en Foros del Web. Hola Foreros! He creado este teman en el Bloque de Java, sin embargo creo q se adapta mejor al de JSP/Servlets, si algun admin lo ...
  #1 (permalink)  
Antiguo 08/06/2011, 10:14
 
Fecha de Ingreso: marzo-2009
Ubicación: Salamanca, España
Mensajes: 141
Antigüedad: 15 años, 8 meses
Puntos: 4
page by page iterator

Hola Foreros! He creado este teman en el Bloque de Java, sin embargo creo q se adapta mejor al de JSP/Servlets, si algun admin lo lee q elimine el post del otro bloque.

Os cuento, A la hora de recuperar una gran cantidad de filas de una BBDD es recomendable usar el patron "Page by Page Iterator" para mostrar el resultado ordenadamente en los grupos de filas deseados. He estado buscando información y toda la que encontré al respecto es un poco confusa.

Alguien ha trabajado con este patrón o tiene algún ejemplo a mano??

A ver si con el codigo de las clases podemos hacer algo mas:

La consulta que me devuelve el select la almaceno en una lista de la siguiente manera:

Código PHP:
public List<CitaslistarProductosComprados(Citas cita0) {

        
String consultaString null;
        
PreparedStatement consulta null;
        
ResultSet resultado null;
        
listaProductosComprados = new ArrayList<Citas>();

        try {

            
// Apertura de la conexion
            
conexion super.getConnection();

            
consultaString "SELECT * FROM compra JOIN productos on compra.idProducto=productos.idProducto WHERE dniPaciente=? order by fecha";
            
consulta conexion.prepareStatement(consultaString);
            
consulta.setString(1cita0.getDniPaciente());

            
// Ejecución de la consulta
            
resultado consulta.executeQuery();

            
// Almacenamos el resultado en una lista
            
while (resultado.next()) {

                
Citas cita = new Citas();
                
cita.setDniPaciente(resultado.getString("dniPaciente"));
                
cita.setIdCompra(resultado.getInt("idCompra"));
                
cita.setFecha(resultado.getString("fecha"));
                
cita.setNombre(resultado.getString("nombre"));
                
cita.setPrecio(resultado.getFloat("precio"));
                
cita.setNumSesiones(resultado.getInt("numSesiones"));
                
cita.setNumSesionesRestantes(resultado.getInt("numSesionesRestantes"));

                
listaProductosComprados.add(cita);
            }

        } catch (
Exception e) {
            
System.out.println("Error en la consulta de la clase ModeloCitasDAO función listarProductosComprados");
            
System.err.println("Error: " e.getMessage());
        }

        return 
listaProductosComprados;
    } 
y en la pagina JSP muestr la lista de la siguiente manera:

Código PHP:
<s:iterator value="listaProductosComprados" status="linea">
        <
s:if test="#linea.odd">
            <
tr class="linea1">
        </
s:if>
        <
s:if test="#linea.even">
            <
tr class="linea2">
        </
s:if>

        <
td><s:property value="idCompra" /></td>
        <
td><s:property value="fecha" /></td>
        <
td><s:property value="nombre" /></td>
        <
td><s:property value="precio" /></td>
        <
td><s:property value="numSesiones" /></td>
        <
td><s:property value="numSesionesRestantes" /></td>
        <
tr>
    </
s:iterator
No se me ocurre manera alguna de presentar las filas en bloques y no todas a la vez. De tal manera q pulsando un boton "siguiente" en la JSP se cargue otro bloque de datos

Un saludo y gracias
  #2 (permalink)  
Antiguo 08/06/2011, 18:42
 
Fecha de Ingreso: marzo-2009
Ubicación: Salamanca, España
Mensajes: 141
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: page by page iterator

Solucionado, al final he utilizado DisplayTag y funciona a las mil maravillas:

http://displaytag.sourceforge.net/10...laytag-12.html

Etiquetas: iterator, jsp-servlets, page
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.