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<Citas> listarProductosComprados(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(1, cita0.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