SlideShare una empresa de Scribd logo
1 de 15
VICENTE WUALDIR ALBERA ROJAS
WILDER 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
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
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 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.
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 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
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 {
// 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");
}
}
}
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)
 
Diagramacion
DiagramacionDiagramacion
Diagramacion
 
Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
Ca 2013 f_01
Ca 2013 f_01Ca 2013 f_01
Ca 2013 f_01
 
Ejercicio En Weka
Ejercicio En WekaEjercicio En Weka
Ejercicio En Weka
 
Metodologia omt
Metodologia omtMetodologia omt
Metodologia omt
 
Control JTable con base de datos
Control JTable con base de datosControl JTable con base de datos
Control JTable con base de datos
 
Uml java
Uml javaUml java
Uml java
 
Clases
ClasesClases
Clases
 
Teoria del modelado de objetos otros diagramas actividad despliegue
Teoria del modelado de objetos otros diagramas actividad despliegueTeoria del modelado de objetos otros diagramas actividad despliegue
Teoria del modelado de objetos otros diagramas actividad despliegue
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
D Iagramas U Ml
D Iagramas U MlD Iagramas U Ml
D Iagramas U Ml
 
Introducion uml
Introducion umlIntroducion uml
Introducion uml
 
Repaso 19 abril2016
Repaso 19 abril2016Repaso 19 abril2016
Repaso 19 abril2016
 

Similar a Resultset (20)

Resultset
ResultsetResultset
Resultset
 
Resulset
ResulsetResulset
Resulset
 
Resultset
ResultsetResultset
Resultset
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Connection
ConnectionConnection
Connection
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
 
Resulset
ResulsetResulset
Resulset
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Resultset
ResultsetResultset
Resultset
 
ResultSet
ResultSetResultSet
ResultSet
 
Control de JTable
Control de JTableControl de JTable
Control de JTable
 
ResultSet
ResultSetResultSet
ResultSet
 
RESULTSET
RESULTSETRESULTSET
RESULTSET
 
Statement
StatementStatement
Statement
 
Resultset
ResultsetResultset
Resultset
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
Resultset
ResultsetResultset
Resultset
 
Almacenamiento en bases de datos ejercicio maestria
Almacenamiento en bases de datos ejercicio maestriaAlmacenamiento en bases de datos ejercicio maestria
Almacenamiento en bases de datos ejercicio maestria
 
Presentación result set
Presentación result setPresentación result set
Presentación result set
 

Más de Vicente Alberca (20)

Oltp exposicion grupal
Oltp exposicion grupalOltp exposicion grupal
Oltp exposicion grupal
 
Copias de seguridad
Copias de seguridadCopias de seguridad
Copias de seguridad
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Administracion de seguridad
Administracion de seguridadAdministracion de seguridad
Administracion de seguridad
 
Trigger-activadores en sql server
Trigger-activadores en sql serverTrigger-activadores en sql server
Trigger-activadores en sql server
 
Cursores
CursoresCursores
Cursores
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Vistas base de datos
Vistas base de datosVistas base de datos
Vistas base de datos
 
Comandos dll en sql server
Comandos dll en sql serverComandos dll en sql server
Comandos dll en sql server
 
Ejecutables
EjecutablesEjecutables
Ejecutables
 
Jasreport
JasreportJasreport
Jasreport
 
Jdbc
JdbcJdbc
Jdbc
 
Objeto sql command
Objeto sql commandObjeto sql command
Objeto sql command
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Epacios nombre system.data.
Epacios nombre system.data. Epacios nombre system.data.
Epacios nombre system.data.
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Trabajo de Programacion Orientada a Objetos.
Trabajo de Programacion Orientada  a Objetos.Trabajo de Programacion Orientada  a Objetos.
Trabajo de Programacion Orientada a Objetos.
 
Programacion en N-capas
Programacion en N-capasProgramacion en N-capas
Programacion en N-capas
 
Diapositiva jtable
Diapositiva jtableDiapositiva jtable
Diapositiva jtable
 

Último

libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Gestion de proyectos para el control y seguimiento
Gestion de proyectos para el control  y seguimientoGestion de proyectos para el control  y seguimiento
Gestion de proyectos para el control y seguimientoMaxanMonplesi
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfMiguelArango21
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONJuan Carlos Meza Molina
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosRamiroCruzSalazar
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfGabrielCayampiGutier
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdfnicolascastaneda8
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 

Último (20)

libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Gestion de proyectos para el control y seguimiento
Gestion de proyectos para el control  y seguimientoGestion de proyectos para el control  y seguimiento
Gestion de proyectos para el control y seguimiento
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
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
  • 5. 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.
  • 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"); } } } } }