Você está na página 1de 10

La Interfaz Statement

Fabin Albn

Informacion
interfaz pblica Declaracin extiende Envoltura ,
AutoCloseableEl objeto que se utiliza para ejecutar una
sentencia de SQL esttico y devolver los resultados que
produce.
Por defecto, slo unResultSetobjeto porDeclaracinobjeto
puede estar abierto al mismo tiempo.Por lo tanto, si la
lectura de unResultSetobjeto se intercala con la lectura de
otro, cada uno debe haber sido generada por
diferentesDeclaracin deobjetos.Todos los mtodos de
ejecucin de laDeclaracin dela interfaz se cierran
implcitamente actual de un statmentResultSetobjeto si
existe una abierta.

Creando un objeto
Statement

Una vez que se ha establecido una conexin a una


base de datos determinada, esta conexin se
puede utilizar para enviar sentencias SQL a la
base de datos. Un objeto Statement se crea con el
mtodo createStatement() de la clase Connection.

Creando un objeto
Statement
En mtodo createStatement() del interfaz Connection, se
encuentra sobrecargado, si utilizamos su versin sin
parmetros, a la hora de ejecutar sentencias SQL sobre el
objeto Statement que se ha creado, se obtendr el tipo de
objeto ResultSet por defecto, es decir, se obtendra un tipo
de cursor de slo lectura y con movimiento nicamente
hacia adelante. Pero la otra versin que ofrece el interfaz
Connection del mtodo createStatement() ofrece dos
parmetros que nos permiten definir el tipo de objeto
ResultSet que se va a devolver como resultado de la
ejecucin de una sentencia SQL.

Ejecucin de objetos
Statement

El interfaz Statement ofrece tres mtodos 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.
El mtodo executeQuery() es apropiado para ejecutar sentencias que
devuelven un nico conjunto de resultados, tales como sentencias
SELECT, este mtodo devuelve un objeto ResultSet (este interfaz lo
veremos en detalle en el siguiente captulo).
El mtodo executeUpdate() es utilizado para ejecutar sentencias INSERT,
UPDATE o DELETE y tambin para sentencias DDL (Data Definition
Language, lenguaje de definicin de datos) de SQL, tales como CREATE
TABLE y DROP TABLE.
El mtodo execute() es utilizado para ejecutar sentencias que devuelven
ms de un conjunto de resultados, ms de un update count (cuenta de
actualizaciones), o una combinacin de los dos. El mtodo execute()
devolver un valor booleano, devolver true si el resultado de la
ejecucin de la sentencia es un objeto ResultSet y false si es un entero
(int) de Java.

Sintaxis de escape
Los objetos Statement pueden contener sentencias SQL que usen
sintaxis de escape de SQL. La sintaxis de escape indica al driver que
el cdigo dentro de esta sintaxis debe ser tratado de forma
diferente. El driver se saltar la sintaxis de escape y la traducir en
cdigo que entender una base de datos particular. Esto hace que la
sintaxis de escape sea independiente del DBMS. Tiene el siguiente
formato general:
{palabra_clave...parmetros..}
Tambin se pueden utilizar caracteres de escape para el operador
LIKE de SQL. Los caracteres "%" y "_" tienen la funcin de comodn
("%" cero o ms caracteres, "_" un carcter). En algn caso
podemos necesitar interpretarlos de forma diferente, para ello
podemos definir un carcter de escape especial, de la siguiente
forma:
{escape 'carcter de escape'}

Utilizando transacciones
En algunos momentos podemos necesitar que varias sentencias
SQL se ejecuten como un todo, y si falla alguna de ellas se
deshagan los cambios realizados por las sentencias y se vuelva a
la situacin anterior. As por ejemplo, al realizar una transferencia
de una cuenta de un banco a otra cuenta, las dos sentencias
encargadas de realizar la actualizacin en el saldo de cada cuenta
se deben ejecutar, si una de ellas falla se deben deshacer los
cambios realizados. Estas dos sentencias se deben ejecutar en
una misma transaccin.
Las sentencias que se ejecutan dentro de una misma transaccin,
para que la transaccin se lleve a cabo, todas las sentencias se
deben ejecutar con xito, si falla alguna se deshacen los cambios
que se hayan podido realizar para evitar cualquier tipo de
inconsistencia en la base de datos, las transacciones permiten
preservar la integridad de los datos. Se puede decir que dentro de
una transaccin se da un "todo o nada".

El Campo
Resumen

Campos

Modificador y Tipo

Campo y Descripcin

static int

CLOSE_ALL_RESULTSLa constante que indica que todos losResultSetobjetos que


previamente se han mantenido abiertos deben cerrarse al llamargetMoreResults.

static int

CLOSE_CURRENT_RESULTLa constante que indica que la corrienteResultSetobjeto


debe estar cerrada al llamargetMoreResults.

static int

EXECUTE_FAILEDLa constante que indica que ocurri un error durante la ejecucin de


una declaracin por lotes.

static int

KEEP_CURRENT_RESULTLa constante que indica que la corrienteResultSetobjeto no


debe ser cerrado al llamargetMoreResults.

static int

NO_GENERATED_KEYSLa constante que indica que las claves generadas no deben


estar disponibles para su recuperacin.

static int

RETURN_GENERATED_KEYSLa constante que indica que las claves generadas deben


estar disponibles para su recuperacin.

static int

SUCCESS_NO_INFOLa constante que indica que una declaracin por lotes ejecutado
con xito pero que ningn recuento del nmero de filas que afect est disponible.

Modificador y Tipo
vaco
vaco
vaco
vaco
vaco
vaco
boolean
boolean

boolean

boolean

int []

ResultSet
int

Mtodo Resumen

Mtodo y Descripcin
addBatch(stringsql)Aade el comando SQL dado a la lista actual de commmands
para estaDeclaracinobjeto.
cancelar()Cancela estaDeclaracinobjeto si tanto el DBMS y la compatibilidad de
controladores abortar una sentencia SQL.
clearBatch()Vaca estaDeclaracinlista actual de comandos SQL de objeto.
clearWarnings()Borra todas las advertencias reportadas en estaDeclaracinobjeto.
close()Estrenos estaDeclaracinde bases de datos de objetos y recursos JDBC de
inmediato en lugar de esperar que esto suceda cuando se cierra automticamente.
closeOnCompletion()Especifica que estaDeclaracinse cerrar cuando todos sus
conjuntos de resultados dependientes estn cerrados.
ejecutar(stringsql)Ejecuta la sentencia SQL dada, que puede devolver varios
resultados.
ejecutar(stringsql, int autoGeneratedKeys)Ejecuta la sentencia SQL dada, que puede
devolver varios resultados, y seala al conductor que se deben hacer las claves
generadas automticamente disponible para su recuperacin.
ejecutar(stringsql, int [] columnIndexes)Ejecuta la sentencia SQL dada, que puede
devolver varios resultados, y seala al conductor que se deben hacer las claves
generadas automticamente que se indican en la matriz dada disponibles para su
recuperacin.
ejecutar(stringsql,Cuerda[] columnNames)Ejecuta la sentencia SQL dada, que
puede devolver varios resultados, y seala al conductor que se deben hacer las claves
generadas automticamente que se indican en la matriz dada disponibles para su
recuperacin.
executeBatch()Presenta un lote de comandos a la base de datos para su ejecucin y si
todos los comandos se ejecutan con xito, devuelve un conjunto de cuentas de
actualizacin.
executeQuery(stringsql)Ejecuta la sentencia SQL dada, que devuelve un
soloResultSetobjeto.
executeUpdate(stringsql)Ejecuta la sentencia SQL dada, que puede ser
unINSERT,ACTUALIZACIN, oBORRARdeclaracin o una sentencia SQL que no
devuelve nada, como una sentencia SQL DDL.

Mtodos heredados de la
interfaz java.sql. Envoltura
isWrapperFor- Indica si este objeto declaracin es
un contenedor para la interfaz especificada.
desenvolver

Você também pode gostar