Upload
jaime-aguilar-rafael
View
14
Download
0
Embed Size (px)
Citation preview
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS Y TELEMÁTICA
Docente : Ingeniero Marco Aurelio Porro ChulliAsignatura : Desarrollo de Software ICiclo : vTema : StatementIntegrantes : Jaime Aguilar Rafael Imer Hobet Díaz Guerrero
STATEMENT
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.
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 ();
Especificar caracterí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);
JEREARQUIA DE LAS INTERFACES STATEMENT
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
Utilización de los tres métodos de ejecución de sentencias SQL.
Para Cerra una Sentencia:
Para cerrar una sentencia se deberá utilizar el método close() del interfaz Statement.
GRACIAS