ResultSet
aún sin saber cuantas filas ha retornado éste, otra forma sencilla de saber la cantidad de filas que retorna un ResultSet
es irnos hasta la última fila y extraer el número de ella, como ya sabemos, un ResultSet
comienza en la fila 1 así que al irnos a la última fila, podremos saber cuantas filas tiene el ResultSet
y cuando ya tengamos el valor nos devolvemos al inicio del ResultSet
. He aquí un ejemplo simple y sin validaciones:
miResultSet.moveLast();
int cantFilas = miResultSet.getRow();
miResultSet.beforeFirst();
Para lograr esta funcionalidad (
Scrollable ResultSet
) debemos declarar el objeto Statement
de la siguiente manera:Statement stmt miConexion.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
);
ResultSet miResultSet = stmt.executeQuery( miQuerySQL );
De esta manera también puedes utilizar otras funcionalidades como:
absolute( x )
mueve el cursor a la fila x.relative( x )
mueve el cursor x filas hacia adelante o hacia atrás si -x.previous( x )
mueve el cursor una fila hacia atrás, equivalente a previous(-1)
.first()
mueve el cursor a la primera fila, = beforeFirst() + next()
.last()
mueve el cursor a la última fila, = afterLast() + previous()
.afterLast()
mueve el cursor al final del ResultSet, aquí los métodos getXXX()
y updateYYY()
fallarán ya que estamos sobre una fila.beforeFirst()
mueve el cursor al inicio del ResultSet y al igual que el afterLast()
los métodos getXXX()
y updateYYY()
no se deben utilizar.Espero les sea de utilidad, de ser así cheka en
[x]
útil abajo ;)
Compadre muchas gracias por el comentario, está bueno y esto lo estaba buscando desde hace mucho rato. solo que no sabia como usarlo.
ResponderEliminaral parecer en JPA el Framework lo utiliza internamente para realizar paginaciones.
saludos men.
cualquier cosa o duda que tengas puedes consultarlo conmigo al joseprox@gmail.com.
Pura vida!
Eliminar