// Ejemplo de cómo montar una paginación
package paquete;
import java.sql.*;
import java.util.*;
public class LibrosCtl extends LibrosCtlWiz
{
Vector v = new Vector();
private int numFilasPag = 20;
public void cargarTabla(int rowDesde, int rowHasta)
{
tabla.removeAllElements();
try
{
String query = "select * from Libros order by isbn";
Statement stmt = con.createStatement();
System.out.println("Ejecutada la query : " + query + " en Libros.cargarTabla()");
ResultSet rs = stmt.executeQuery(query);
// Posicionamiento en rowDesde
// Con JDBC 2 puede sustituirse en bucle en vacío por
// rs.absolute(rowDesde)
int k = 0;
while (k++ < rowDesde && rs.next())
{
}
while (k++ <= rowHasta && rs.next())
{
LibrosHelper obj = new LibrosHelper();
obj.setIsbn(Util.nvl(rs.getString("isbn")));
obj.setTitulo(Util.nvl(rs.getString("titulo")));
obj.setAutor(Util.nvl(rs.getString("autor")));
obj.setEditorial(Util.nvl(rs.getString("editorial")));
obj.setTema(Util.nvl(rs.getString("tema")));
obj.setNsalidas(rs.getInt("nsalidas"));
obj.setEstafuera(Util.nvl(rs.getString("estafuera")));
obj.setPermitir(Util.nvl(rs.getString("permitir")));
tabla.addElement(obj);
}
rs.close();
stmt.close();
}
catch (Exception e)
{
System.out.println("Capturada en LibrosCtlWiz.cargarTabla()");
e.printStackTrace();
}
}
// Con JDBC 2 puede sustituirse por:
// rs.last();
// rs.getRow();
public int getTotalFilas()
{
int n = 0;
try
{
String query = "select count(*) from Libros";
Statement stmt = con.createStatement();
System.out.println("Ejecutada la query : " + query + " en LibrosCtl.getTotalFilas()");
ResultSet rs = stmt.executeQuery(query);
rs.next();
n = rs.getInt(1);
rs.close();
stmt.close();
}
catch (Exception e)
{
System.out.println("Capturada en LibrosCtl.getTotalFilas()");
e.printStackTrace();
}
return n;
}
public int getNumPags()
{
return getTotalFilas() / getNumFilasPag() + 1;
}
public void setNumFilasPag(int newNumFilasPag)
{
numFilasPag = newNumFilasPag;
}
public int getNumFilasPag()
{
return numFilasPag;
}
}
En el JSP del listaLibros.jsp
(se llama a sí mismo con el parámetro npag):
...