20
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

Statement

Embed Size (px)

Citation preview

Page 1: Statement

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

Page 2: Statement

STATEMENT

Page 3: 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.

Page 4: Statement

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 ();

Page 5: Statement

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);

Page 6: Statement

JEREARQUIA DE LAS INTERFACES STATEMENT

Page 7: 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.

Page 8: Statement

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.

Page 9: 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.

Page 10: 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.

Page 11: Statement

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.

Page 12: 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.

Page 13: Statement

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.

Page 14: 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.

Page 15: Statement

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.

Page 16: Statement

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.

Page 17: Statement

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).

Page 18: Statement

Utilización de los tres métodos de ejecución de sentencias SQL.

Page 19: Statement

Para Cerra una Sentencia:

Para cerrar una sentencia se deberá utilizar el método close() del interfaz Statement.

Page 20: Statement

GRACIAS