Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   contar registros en ResultSet (http://www.forosdelweb.com/f45/contar-registros-resultset-207795/)

pacoalonso79 04/06/2004 11:58

contar registros en ResultSet
 
Hola a todos:
estoy buscando el método o variable que me debuelva el núermo de registros que contiene un ResultSet... sé que se puede hacer contando con el next pero quisiera saber un modo mas directo que me permita conocer si la consulta ha sido vaciía o si tiene uno o mas registros....
Disculpen mi ignorancia pero he estado buscando y no encuentro...
Agradecido de antemano y deseándles éxitos se despide
Paco

aeb_asturias 05/06/2004 11:15

Hola paco. Yo me encontré en tu situación hace poco y no encontre nada, pero descubrí una clase que te da datos sobre ese objeto resultSet obtenido en la consulta como numero de columnas devuelta en la consulta,etc pero por desgracia no aporta datos sobre el número de filas devueltas.
La clase se llama resultsetMetaData.

Espero que te sirva para algo.

Un saludo

pacoalonso79 05/06/2004 15:17

muchas gracias amigo... justamente en el transcuros de las travesuras en el lenguaje java tambien llegué a encontrar la clase a la que haces mención... pero, como bien dices, aun no hay nada de conteo del número de columnas directamente, as que solo queda hacer un par de lineas mas para sacar dicho número...
Un gran saludo tamben para ti y para todos los javaadictos
Paco

shahm 08/06/2004 10:24

haz primero un count(*) de la select

pacoalonso79 08/06/2004 13:36

muchas gracias... esa es la mejor solución que ya habia implementado, muchsa gracias ora vez por tu ayuda... cuento con ella y cuenta con la mia en lo sucesivo

leidylozano735 04/01/2009 23:24

Respuesta: contar registros en ResultSet
 
Hola!!

Necesitaba saber cuantos registros me devolvían las consultas a la base de datos en un ResultSet para no tener que hacer la consulta dos veces, después de leer varios foros y buscar en diferentes páginas y no encontrar una solución completa estuve experimentando algunas cosas, ahora que lo he logrado les quiero compartir la forma en que lo logre por si alguien llega a necesitarla.

Yo utilice Oracle express edition como SGBD y Java como lenguaje de desarrollo, las librerias que use fueron ojdbc14.jar y ojdbc14_g.jar por estar trabajando con oracle (se encuentran en la carperta donde queda instalado oracle), jstl.jar (se descarga desde http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi) y jsp-api.jar y servlet-api.jar (se encuentran en la carpeta donde queda intalado el apache tomcat).

El código es el siguiente:

import Connections.Conexion;
import java.sql.ResultSet;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

public class CConsultas
{

public String[] consulta()
{

//Crea la conexión con la base de datos
Conexion con=new Conexion("oracle.jdbc.driver.OracleDriver","jdbc:o racle:thin:@127.0.0.1:1521:XE","Usuario","Contrase ña");

//Realiza la consulta y la almacena en un ResultSet
ResultSet resp=con.query1("select Nombre from Campo");

//Convierte el ResultSet en un Result
Result result = ResultSupport.toResult(resp);

//Devuelve el número de filas devueltas en la consulta
int rowcount = result.getRowCount( );

//Devuelve el resultado de la consulta y lo almacena en un vector de String
Object[][]resp3=result.getRowsByIndex();
String resp2[]=new String[rowcount];

for(int i=0;i<rowcount;i++)
resp2[i]=resp3[i][0].toString();

//Cierra la conexión
con.closeStatement();

//Retorna el resultado en un vector de String
return resp2;
}

}

Si el resultado devuelto no es un String sino otro tipo de dato como por ejemplo un double, en el for se hace la conversion, quedaria entonces:

double resp2[]=new double[rowcount];
for(int i=0;i<rowcount;i++)
resp2[i]=Double.valueOf(resp3[i][0].toString());

Espero les sirva de ayuda!!!


La zona horaria es GMT -6. Ahora son las 10:19.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2