Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/01/2009, 00:24
leidylozano735
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo 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!!!