Elaboración de la estructura del ADN y ARN en papel.pdf
Resultset
1. VICENTE WUALDIR ALBERA ROJAS
WILDER FUENTES ARAUJO
Desarrollo de Software I Marco Aurelio Porro Chulli
RESULTSET
2. RESULTSET
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
Mediante esta interfaz, se
organizan en tablas los
resultados de las órdenes
SQL
3. El formato general de un result set es una tabla con cabeceras de columna y los valores
correspondientes devueltos por la ‘query’. Por ejemplo, si la ‘query’ es SELECT a, b, c FROM
Table1, el resultado tendrá una forma semejante a:
a b c
-------- --------- --------
12345 Cupertino CA
83472 Redmond WA
83492 Boston MA
4. El cursor se mueve
una fila hacia abajo
cada vez que se
llama al método
next.
Filas y Cursores
Un cursor se mantiene válido
hasta que el objeto Resultset
o su objeto padre Statement
se cierra.
Las filas de ResultSet se
recuperan en secuencia
desde la fila más alta a la
más baja.
Si una base de datos permite
upadtes posicionados o
deletes posicionados, el
nombre del cursor es
necesario y debe ser
proporcionado como un
parámetro del comando
update o delete
6. 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
La opción de usar el nombre de columna fue
provista para que el usuario que especifica
nombres de columnas en una ‘query’ pueda usar
esos nombres como argumentos de los métodos
getXXX.
7. MÉTODOS
Siguiente fila: next()
public abstract boolean next() throws SQLException
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 SQLException
Cierra inmediatamente el ResultSet, liberando los recursos utilizados.
Resultados nulos: wasNull()
public abstract boolean wasNull() throws SQLException
Se usa después de obtener un null con un método getXXX() para comprobar que corresponde a un valor NULL
SQL.
8. 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.
Método getXXX() tipo Java
getString String
getBoolean boolean
getByte byte
getShort short
getInt int
getLong long
getFloat float
getDouble double
getBigDecimal* BigDecimal
getBytes byte[]
getDate Date
getTime Time
getTimestamp Timestamp
getAsciiStream** InputStream
getUnicodeStream** InputStream
9. Lectura de avisos: getWarnings()
public abstract SQLWarning getWarnings() throws SQLException
Obtiene el primer aviso de la cadena de avisos SQL producidos durante el trabajo con este ResultSet o
null si no hay ninguno. La cadena de avisos se renueva con cada fila.
Borrado de avisos: clearWarnings()
public abstract void clearWarnings() throws SQLException
Borra todos los avisos de la cadena.
Obtención del nombre del cursor: getCursorName()
public abstract String getCursorName() throws SQLException
Obtiene el nombre del cursor asignado a este ResultSet.
10. Propiedades del ResultSet
getMetaData()
public abstract ResultSetMetaData getMetaData() throws SQLException
Obtiene en un objeto ResultSetMetaData información sobre el número de columnas y su estructura.
Obtención de Objetos: getObject()
public abstract Object getObject(int indiceColumna) throws SQLException
public abstract Object getObject(int nombreColumna) throws SQLException
Obtiene el valor contenido en la columna como un objeto Java cuyo tipo sigue la traducción estándar
JDBC de tipos SQL a tipos Java. Este método es válido para tipos específicos de la base de
datos.
11. Índices de las columnas: findColumn()
public abstract int findColumn(String nombreColumna) throws SQLException.Obtiene el índice de una columna
conocido su nombre.
12. EJEMPLOS DE RESULTSET
Este programa muestra la utilización de ResultSetMetaData y ResultSet para visualizar todos los datos de
una tabla aunque el programa que obtiene los datos no sabe cuál es el aspecto que tendrá la tabla (el usuario
pasa los valores correspondientes a la tabla y a la biblioteca).
import java.sql.*;
/**
ResultSetExample.java
public class ResultSetExample {
public static void main(java.lang.String[] args)
{
if (args.length != 2) {
System.out.println("Uso: java ResultSetExample <biblioteca> <tabla>");
System.out.println(" siendo <biblioteca> la biblioteca que contiene la <tabla>");
13. System.exit(0);
}
Connection con = null;
Statement s = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
// Obtener una conexión a base de datos y preparar una sentencia.
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
con = DriverManager.getConnection("jdbc:db2:*local");
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM " + args[0] + "." + args[1]);
rsmd = rs.getMetaData();
14. int colCount = rsmd.getColumnCount();
int rowCount = 0;
while (rs.next()) {
rowCount++;
System.out.println("Datos para la fila " + rowCount);
for (int i = 1; i <= colCount; i++)
System.out.println(" Fila " + i + ": " + rs.getString(i));
}
} catch (Exception e) {
// Manejar los errores.
System.out.println("Tenemos un error... ");
e.printStackTrace();
} finally {
15. // Hay que asegurarse de que siempre se haga
// el borrado. Si la conexión se cierra, la
// sentencia que hay debajo de ella también se cerrará.
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println("Error grave: no se puede cerrar el objeto
conexión");
}
}
}
}
}