05/01/2009, 00:24
|
| | Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 10 meses Puntos: 0 | |
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!!! |