2. Result Set
• ⧭Definición: Un ResultSet contiene todas las filas que satisfacen las
condiciones de una sentencia SQL y proporciona el acceso a los datos de
estas filas mediante un conjunto de métodos get que permiten el acceso a
las diferentes columnas de la filas. El método ResultSet.next se usa para
moverse a la siguiente fila del result set, convirtiendo a ésta en la fila
actual.
3. ⧭Propiedades:
• Siguiente fila: next():public abstract boolean next() throws SQL
Exception Pasa a la siguiente fila, o a la primera cuando se ejecuta por
primera vez. Devuelve true si se consigue y false si no quedan filas.
• Cierre del ResultSet: close():public abstract void close() throws
SQLExceptionCierra inmediatamente el ResultSet, liberando los
recursos utilizados.
• Resultados nulos: wasNull():public abstract boolean wasNull() throws
SQLException.Se usa después de obtener un null método getXXX() para
comprobar que corresponde a un valor NULL SQL.
• Obtención de valores: getXXX():public abstract tipoJava getXXX(int
indiceColumna) throws SQLException public.
abstract tipoJava getXXX(String nombreColumna) throws SQLException
Obtienen el valor contenido en la columna como un tipoJava, o un null si
se trataba de un valor NULL de SQL.
4. Filas y Cursores
• Un ResultSet mantiene un cursor que apunta a la fila actual de datos.
El cursor se mueve una fila hacia abajo cada vez que se llama al
método next. Inicialmente se sitúa antes de la primera fila, por lo que
hay que llamar al método next para situarlo en la primera fila
convirtiéndola en la fila actual. Las filas de ResultSet se recuperan en
secuencia desde la fila más alta a la más baja.
• Un cursor se mantiene válido hasta que el objeto Resultset o su objeto
padre Statement se cierra.
5. Columnas
• Los métodos getXXX suministran los medios para recuperar los valores de
las columnas de la fila actual. Dentro de cada fila, los valores de las
columnas pueden recuperarse en cualquier orden, pero para asegurar la
máxima portabilidad, deberían extraerse las columnas de izquierda a
derecha y leer los valores de las columnas una única vez.
• Puede usarse o bien el nombre de la columna o el número de columna para
referirse a esta. Por ejemplo: si la columna segunda de un objeto RecordSet
rs se denomina “title” y almacena valores de cadena, cualquiera de los dos
ejemplos siguientes nos devolverá el valor almacenado en la columna.
6. Recomendaciones:
//Creamos el Resulset
Driver DriverrsCount = (Driver)Class.forName(MM_conn_DRIVER).newInstance();
Connection ConnrsCount =
DriverManager.getConnection(MM_conn_STRING,MM_conn_USERNAME,MM_conn_PASSWORD);
PreparedStatement StatementrsCount = ConnrsCount.prepareStatement("SELECT * FROM tabla ");
ResultSet rsCount = StatementrsCount.executeQuery();
while (rsCount.next()){ //mientras tenga algo el resulset
String columna = rsCount.getString(1); // donde 1 es el numero de la columna del resulset
//metes la variable en un arreglo ArrayList y Listo a Cerrar conexiones
}
7. Conclusiones:
• Cuando la propiedad CustomTool de un archivo de esquema XSD se
establece en MSResultSetGenerator, se generan los objetos de
origen de datos ResultSet escritos en lugar de los objetos de origen
de datos DataSet normales. Los ResultSet son cursores de base de
datos rápidos que admiten el enlace de datos de interfaz de usuario,
el desplazamiento hacia delante y hacia atrás, y la actualización de
datos en la base de datos. Como modelo de conexión permanente,
ResultSet mantienen una conexión activa a la base de datos.