Date post: | 15-Apr-2017 |
Category: |
Engineering |
Upload: | vicente-alberca |
View: | 65 times |
Download: | 0 times |
INGENIERIA DE SISTEMAS Y TELEMATICA
VICENTE WUALDIR ALBERA ROJASWILDER FUENTES ARAUJO
Desarrollo de Software I Marco Aurelio Porro Chulli
RESULTSET
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
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
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
DatabaseMetaData.supportsPositionedDelete
DatabaseMetaData.supportsPositionedUpdate
Permiten descubrir si estas operaciones
están soportadas en una conexión dada
Cuando lo están, el driver o la DBMS
deben asegurarse que las filas
seleccionadas están apropiadamente
bloqueadas.
por tanto que estas operaciones no
provoquen actualizaciones anómalas ni
otros problemas de concurrencia.
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 ordenLa 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.
LAS
COLU
MNAS
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.
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 JavagetString 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
getBinaryStream** InputStream
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.
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.
Índices de las columnas: findColumn()
public abstract int findColumn(String nombreColumna) throws SQLException.Obtiene el índice de una columna conocido su nombre.
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>");
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();
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 {