1. ESCUELA PROFESIONAL DE INGENIERÍA DE
SISTEMAS Y TELEMÁTICA
Docente : Ingeniero Marco Aurelio Porro Chulli
Asignatura : Desarrollo de Software I
Ciclo : v
Tema : Statement
Integrantes : Jaime Aguilar Rafael
Imer Hobet Díaz Guerrero
3. DEFINICIÓN
El objeto Statement (sentencia) sirve para procesar
una sentencia SQL estática y obtener los resultados
producidos por ella. Solo puede haber un ResultSet
abierto para cada objeto Statement en un momento
dado. Todos los métodos statement que procesan
una sentencia SQL cierran implícitamente el
ResultSet actual de una sentencia si existe uno
abierto.
4. CREAR SENTENCIAS
Los objetos Statement se crean a partir de objetos
Connection con el método createStatement. Por
ejemplo, suponiendo que ya exista un objeto
Connection denominado cn, la siguiente línea de
código crea un objeto Statement para pasar
sentencias SQL a la base de datos:
Statement stmt = cn. createStatement ();
5. Especificarcaracterística de ResultSet
Las características de los ResultSets están asociadas con la sentencia que
finalmente los crea. El método Connection.createStatement permite
especificar estas características de ResultSet. A continuación se ofrecen
algunos ejemplos de llamadas válidas al método createStatement:
Ejemplo: método createStatement
// El siguiente código es nuevo en JDBC 2.0
Statement stmt2 =cn. createStatement
(ResulSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATETABLE);
// El siguiente código es nuevo en JDBC 3.0
Statement stmt3= cn. createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY,
ResultSet.HOLD_CURSOR_OVER_COMMIT);
7. LA INTERFACE STATEMENT: MÉTODOS
void addBatch(String sql): Añade un comando SQL, que se para
por parámetro. al conjunto de sentencias actual del objeto
Statement.
void cancel(): cancela el objeto Statement, abortando la sentencia
SQL correspondiente.
void clearBatch(): elimina el conjunto de sentencias actual.
void clearWarnings(): elimina todos los avisos ofrecidos por el
objeto Statement actual.
void close(): cierra el objeto Statement liberando todos los
recursos asociados de forma inmediata.
boolean execute(String sql): ejecuta la sentencia SQL que se
pasa por parámetro.
8. LA INTERFACE STATEMENT: MÉTODOS
int[ ] executeBatch(): Envía un conjunto de sentencias SQL
a la base de datos para que se ejecuten, devolverá un array
con el número de filas afectadas de cada sentencia SQL.
ResultSet executeQuery(String sql): Ejecuta una sentencia
SQL que devuelve un conjunto de resultados, representado
por el objeto ResultSet. En el siguiente capítulo trataremos
con detenimiento el interfaz ResultSet.
int executeUpdate(String sql): Ejecuta la sentencia SQL
que se pasa por parámetro y de debe ser del tipo INSERT,
UPDATE o DELETE.
Connection getConnection(): Devuelve el objeto
Connection a partir del que se ha creado el objeto Statement.
9. LA INTERFACE STATEMENT: MÉTODOS
int getFetchDirection(): devuelve la dirección que se utiliza para
ir recuperando registros cada vez que se utilizan, devuelve una
constante definida en el interfaz ResultSet, que puede ser
FETCH_FORWARD (hacia adelante), FETCH_REVERSE (hacia
atrás) o FETCH_ UNKNOWN (dirección desconocida).
int getFetchSize(): devuelve el número de registros que se
recuperan de la base de datos cada vez que se necesitan más
registros. Estos métodos se utilizan para cuestiones de eficiencia
del driver correspondiente.
int getMaxFieldSize(): devuelve el número máximo de bytes que
se permite para un campo.
int getMaxRows(): devuelve el número máximo de registros que
un objeto ResultSet puede contener como resultado de la
ejecución de un objeto Statement.
10. LA INTERFACE STATEMENT: MÉTODOS
boolean getMoreResults(): se desplaza al siguiente
resultado obtenido a partir de la ejecución de un objeto
Statement.
int getQueryTimeout(): devuelve el número de segundos
que el driver va a esperar para que se ejecute un objeto
Statement.
ResultSet getResultSet(): devuelve el resultado actual en
forma de un objeto ResultSet.
int getResultSetConcurrency(): devuelve el tipo de
concurrencia aplicada a los objetos ResultSet que se
obtengan a partir del objeto Statement actual, el valor
devuelto se corresponde con una serie de constantes
definidas en el interfaz ResultSet.
11. LA INTERFACE STATEMENT: MÉTODOS
int getResultSetType(): devuelve el tipo de ResultSet que sa
va a utilizar para un objeto Statement.
int getUpdateCount(): devuelve el resultado actual como un
número de actualizaciones realizadas (filas afectadas), si el
resultado es un ResultSet o no hay más resultados devuelve
- 1.
SQLWarning getWarnings(): devuelve el primer aviso
(objeto SQLWarning) generado por las llamadas al objeto
Statement.
void setCursorName(): define el nombre del cursor SQL que
va a ser utilizado en las distintas llamadas al método
execute() del objeto Statement.
12. LA INTERFACE STATEMENT: MÉTODOS
void setEscapeProcessing(boolean activar): activa o
desactiva el proceso de expresiones de escape, la sintaxis de
escape la veremos en el apartado correspondiente.
void setFetchDirection(int dirección): indica al driver en
que dirección debe devolver los registros que se vayan
necesitando.
void setFetchSize(int registros): indica al driver de JDBC el
número de registros que se deben obtener de la base de
datos cada vez que se vayan necesitando.
void setMaxFieldSize(int máximo): establece el máximo
número de bytes que puede tener un campo.
13. LA INTERFACE STATEMENT: MÉTODOS
void setMaxRows(int máximo): establece el número
máximo de registros que puede contener un objeto ResultSet.
void setQueryTimeout(int segundos): establece el número
de segundos que un driver esperará para que se ejecute un
objeto Statement.
14. Ejecución de objetos Statement
Ejecución de objetos Statement
El interfaz Statement ofrece tres métodos diferentes
para ejecutar sentencias SQL: executeQuery(),
executeUpdate() y execute(). El uso de cada uno de
ellos viene determinado por el resultado que ofrezca la
sentencia SQL y por el contenido de la misma.
15. ExecuteQuery()
El método executeQuery() es apropiado para
ejecutar sentencias que devuelven un único
conjunto de resultados, tales como sentencias
SELECT, este método devuelve un objeto
ResultSet.
16. ExecuteUpdate()
El valor que devuelve executeUpdate() es un
entero que indica el número de filas que han
sido afectadas (este número se identifica con
update count o cuenta de actualizaciones).
Para sentencias tales como CREATE TABLE
o DROP TABLE, que no operan con filas, el
valor que devuelve executeUpdate() es
siempre cero.
17. Execute()
El método execute() es utilizado para ejecutar
sentencias que devuelven más de un conjunto de
resultados, más de un update count (cuenta de
actualizaciones), o una combinación de los dos.
El método execute() devolverá un valor booleano,
devolverá true si el resultado de la ejecución de la
sentencia es un objeto ResultSet y false si es un
entero (int) de Java. Si execute() devuelve false,
esto quiere decir que el resultado es un update
count o que la sentencia ejecutada era un comando
DDL (Data Definition Language).