SlideShare una empresa de Scribd logo
1 de 3
La clase Statement
Un objeto Statementse usa para enviar sentencias SQL a la base de datos. Actualmente hay tres tipos de
objetos Statement, todos los cuales actúan como contenedores para la ejecución de sentencias en una
conexión dada:
Statement, PreparedStatement que hereda de Statement.
CallableStatement que hereda de PreparedStatement. Estas están especializadas para enviar tipos
particulares de sentencias SQL
Un objeto Statement se usa para ejecutar una sentencia SQL simple sin parámetros.
Un objeto PreparedStatement se usa para ejecutar sentencias SQL pre compiladas con o sin parámetros IN;
Un objeto CallableStatement se usa para ejecutar un procedimiento de base de datos almacenado.
La interface Statementsuministra métodos básicos para ejecutar sentencias y devolver resultados.
La interface PreparedStatement añade métodos para trabajar con los parámetros IN;
La interface CallableStatementañade métodos para trabajar con parámetros OUT.
Creación de objetos Statement
Una vez establecida la conexión con una base de datos particular, esta conexión puede usarse para enviar
sentencias SQL. Un objeto Statement se crea mediante el método de Connection createStatement, como
podemos ver en el siguiente fragmento de código.
Connection con = DriverManager.getConnection(url, "sunny", "");
Statement stmt = con.createStatement();
La sentencia SQL que será enviada a la base de datos es alimentada como un argumento a uno de los
métodos de ejecución del objeto Statement. Por ejemplo:
Result Set rs = stmt.executeQuery("SELECT a, b, c FROM Table2");
Ejecución de sentencias usando objetos Statement.
La interfase Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery,
executeUpdate y execute. El método a usar está determinado por el producto de la sentencia SQL.
El método executeQuery está diseñado para sentencias que producen como resultado un único result set tal
como las sentencias SELECT.
El método executeUpdate se usa para ejecutar sentencias INSERT, UPDATE o DELETE así como sentencias SQL
DDL (Data Definition Language) como CREATE TABLE o DROP TABLE. El efecto de una sentencia INSERT,
UPDATE o DELETE es una modificación de una o más columnas en cero o más filas de una tabla. El valor
devuelto de executeUpdate es un entero que indica el número de filas que han sido afectadas (referidos
como update count). Para sentencias tales como CREATE TABLE o DROP TABLE, que no operan sobre filas, le
valor devuelto por executeUpdate es siempre cero.
El método execute se usa para ejecutar sentencias que devuelven más de un result set, más que un update
count o una combinación de ambos. Como es esta una característica avanzada que muchos programadores
no necesitarían nunca se verá en su propia sección.
Todos los métodos que ejecutan sentencias cierran los objetos Resultset abiertos
como resultado de las llamadas a Statement. Esto quiere decir que es necesario
completar el proceso con el actual objeto Resulset antes de reejecutar una sentencia
Statement.
Debe notarse que la interfase PreparedStatement, que hereda los métodos de la
interface Statement, tiene sus propias versiones de los métodos executeQuery,
executeUpdate y execute. Los objetos Statement en si mismos no contienen una
sentencia SQL, por tanto debe suministrarse como un argumento a los métodos
Statement.execute. Los objetos PreparedStatement no suministran una sentencia SQL
como argumento a estos métodos puesto que ya tienen la sentencia pre compilada.
Los objetos CallableStatement heredan las formas de estos métodos de
PreparedStatement. Usar un parámetro de query con las versiones de los métodos de
PreparedStatement o CallableStatement producirá una SQLException.
Uso del método execute
El método execute debería usarse solamente cuando es posible que una sentencia nos devuelva más de un
objeto Resultset, más de un update count o una combinación de ambos. Estas múltiples posibilidades para
resultados, aunque raras, son posibles cuando se ejecutan ciertos procedimientos almacenados o por la
ejecución dinámica de una string SQL desconocida (esto es, desconocida para el programador de la aplicación
en tiempo de compilación). Por ejemplo, una usuario podría ejecutar un procedimiento almacenado (usando
una objeto CallableStatement y este procedimiento podría ejecutar una actualización, después una select,
luego una actualización, después una select y así. Normalmente, alguien que usa un procedimiento
almacenado sabrá que se le va a devolver.
Porque el método execute maneja los casos que se salen de lo ordinario, no sorprende que los resultados
devueltos requieranalgún manejo especial. Por ejemplo, supongamos que se sabe que el procedimiento
devuelve dos result sets.
Después de usar el método execute para ejecutar el procedimiento, se debe llamar al método getResultSet
para conseguir el primer result set y después los métodos apropiados getXXX para recuperar los valores de él.
Para conseguir el segundo result set, se necesita llamar al método getMoreResults y despues a getResultSet
de nuevo. Si se sabe que el procedimiento devuelve dos upadte counts, se llama primero al método
getUpdateCount, seguido de getMoreResults y de nuevo getUpdateCount.
Aquellos casos en los que no se conoce que devolverá se nos presentan una situación más compleja. El
método execute devuelve true si el resultado es un objeto ResultSet y false si es un int Java. Si devuelve un
int, esto quiere decir que el resultado o bien es un update count o que la sentencia que ha ejecutado es un
comando DDL. Lo primero que hay que hacer después de llamar execute es llamar o bien a getResultSet o
getUpdateCount. Al método getResultSet se le llama para conseguir el primero de los dos o más objetos
ResultSet y al método getUpdateCount para conseguir el primero de dos o más update counts.
Cuando el resultado de una sentencia SQL no es un result set, el método getResultSet devolverá null. Esto
quiere decir que el resultado es un update count o que no hay más resultados. La única manera de encontrar
que significa el valor null en este caso es llamar al método getUpdateCount, que devolverá un entero. Este
entero será el número de filas afectadas por la sentencia ejecutada o –1 para indicar o bien que el resultado
es un result set o bien que no hay más resultados. Si el método getResultSet ya ha devuelto null, el resultado
no puede ser un objeto ResultSet, por lo que el valor devuelto de –1 tiene que ser que no hay más resultados.
Ayuda la clase statement

Más contenido relacionado

La actualidad más candente (19)

Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenados
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Statement
StatementStatement
Statement
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
Statement
StatementStatement
Statement
 
Prepared Statement
Prepared StatementPrepared Statement
Prepared Statement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
PreparedStatement
PreparedStatementPreparedStatement
PreparedStatement
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 

Destacado

The Dna Of A Good Leader
The Dna Of A Good LeaderThe Dna Of A Good Leader
The Dna Of A Good LeaderKhoo Christie
 
Bases del concurso de ética judicial
Bases del concurso de ética judicialBases del concurso de ética judicial
Bases del concurso de ética judicialCarlos Ramirez
 
ES118 10-Especial Juguetes-Lego+Nombre Juguetes
ES118 10-Especial Juguetes-Lego+Nombre JuguetesES118 10-Especial Juguetes-Lego+Nombre Juguetes
ES118 10-Especial Juguetes-Lego+Nombre JuguetesBint
 
Kdm avaya sip_trunking
Kdm avaya  sip_trunkingKdm avaya  sip_trunking
Kdm avaya sip_trunkingeduardo367
 
090109 Durgin Cieneguita 43 101 Dec 08 Final
090109 Durgin Cieneguita 43 101 Dec 08 Final090109 Durgin Cieneguita 43 101 Dec 08 Final
090109 Durgin Cieneguita 43 101 Dec 08 FinalChristopher R Anderson
 
AA April 2015 Catalogue - low res website version
AA April 2015 Catalogue - low res website versionAA April 2015 Catalogue - low res website version
AA April 2015 Catalogue - low res website versionPatrick Harris
 
Presentación 10 cerro castor mariana
Presentación 10 cerro castor marianaPresentación 10 cerro castor mariana
Presentación 10 cerro castor marianamarianaagata
 
Mbym lookbook autumn 2016 (1)
Mbym lookbook autumn 2016 (1)Mbym lookbook autumn 2016 (1)
Mbym lookbook autumn 2016 (1)estebandeus
 
Research design for Evaluation of Strongly Sustainability Business Model Onto...
Research design for Evaluation of Strongly Sustainability Business Model Onto...Research design for Evaluation of Strongly Sustainability Business Model Onto...
Research design for Evaluation of Strongly Sustainability Business Model Onto...Antony Upward
 
RECOMENDACIONES PBC-FT
RECOMENDACIONES PBC-FTRECOMENDACIONES PBC-FT
RECOMENDACIONES PBC-FTekonomistak
 
El montaje (fotografia y video)
El montaje (fotografia y video)El montaje (fotografia y video)
El montaje (fotografia y video)Claudio Vitor Vaz
 
Apunte leptospirosis
Apunte leptospirosisApunte leptospirosis
Apunte leptospirosisClaudia Calvi
 

Destacado (20)

The Dna Of A Good Leader
The Dna Of A Good LeaderThe Dna Of A Good Leader
The Dna Of A Good Leader
 
Bases del concurso de ética judicial
Bases del concurso de ética judicialBases del concurso de ética judicial
Bases del concurso de ética judicial
 
ES118 10-Especial Juguetes-Lego+Nombre Juguetes
ES118 10-Especial Juguetes-Lego+Nombre JuguetesES118 10-Especial Juguetes-Lego+Nombre Juguetes
ES118 10-Especial Juguetes-Lego+Nombre Juguetes
 
Riesgos 3
Riesgos 3Riesgos 3
Riesgos 3
 
Kdm avaya sip_trunking
Kdm avaya  sip_trunkingKdm avaya  sip_trunking
Kdm avaya sip_trunking
 
Sakura
SakuraSakura
Sakura
 
090109 Durgin Cieneguita 43 101 Dec 08 Final
090109 Durgin Cieneguita 43 101 Dec 08 Final090109 Durgin Cieneguita 43 101 Dec 08 Final
090109 Durgin Cieneguita 43 101 Dec 08 Final
 
AA April 2015 Catalogue - low res website version
AA April 2015 Catalogue - low res website versionAA April 2015 Catalogue - low res website version
AA April 2015 Catalogue - low res website version
 
Angel
Angel Angel
Angel
 
Presentación 10 cerro castor mariana
Presentación 10 cerro castor marianaPresentación 10 cerro castor mariana
Presentación 10 cerro castor mariana
 
Mbym lookbook autumn 2016 (1)
Mbym lookbook autumn 2016 (1)Mbym lookbook autumn 2016 (1)
Mbym lookbook autumn 2016 (1)
 
2012 Pink Report Order Form
2012 Pink Report Order Form2012 Pink Report Order Form
2012 Pink Report Order Form
 
Research design for Evaluation of Strongly Sustainability Business Model Onto...
Research design for Evaluation of Strongly Sustainability Business Model Onto...Research design for Evaluation of Strongly Sustainability Business Model Onto...
Research design for Evaluation of Strongly Sustainability Business Model Onto...
 
RECOMENDACIONES PBC-FT
RECOMENDACIONES PBC-FTRECOMENDACIONES PBC-FT
RECOMENDACIONES PBC-FT
 
El montaje (fotografia y video)
El montaje (fotografia y video)El montaje (fotografia y video)
El montaje (fotografia y video)
 
Puentes
PuentesPuentes
Puentes
 
Quimioterapeuticos
QuimioterapeuticosQuimioterapeuticos
Quimioterapeuticos
 
Apunte leptospirosis
Apunte leptospirosisApunte leptospirosis
Apunte leptospirosis
 
Sistemes i aparells
Sistemes i aparellsSistemes i aparells
Sistemes i aparells
 
Progr asist jur y not a
Progr asist jur y not aProgr asist jur y not a
Progr asist jur y not a
 

Similar a Ayuda la clase statement (20)

Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Resulset
ResulsetResulset
Resulset
 
Statement
StatementStatement
Statement
 
Statement
Statement Statement
Statement
 
statement
statementstatement
statement
 
Statemen
StatemenStatemen
Statemen
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Statement
StatementStatement
Statement
 
Dispositivas de la clase statement
Dispositivas de la clase statementDispositivas de la clase statement
Dispositivas de la clase statement
 
PREPAREDSTATEMENT
PREPAREDSTATEMENTPREPAREDSTATEMENT
PREPAREDSTATEMENT
 
Statement
StatementStatement
Statement
 
Connection
ConnectionConnection
Connection
 
Laboratorio de Programacion
Laboratorio de ProgramacionLaboratorio de Programacion
Laboratorio de Programacion
 
Preparedstatemet
Preparedstatemet Preparedstatemet
Preparedstatemet
 
Diapositivas objeto statement
Diapositivas objeto statementDiapositivas objeto statement
Diapositivas objeto statement
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 

Más de chocolatito Chocolatito (6)

rrr
rrrrrr
rrr
 
Cm71002
Cm71002Cm71002
Cm71002
 
Analisisf
AnalisisfAnalisisf
Analisisf
 
Ayuda
AyudaAyuda
Ayuda
 
Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02
 
ee
eeee
ee
 

Último

Retiro de mayo #DesdeCasa (2024)
Retiro de mayo #DesdeCasa (2024)Retiro de mayo #DesdeCasa (2024)
Retiro de mayo #DesdeCasa (2024)Opus Dei
 
Proverbios 8: La sabiduría viva de YHWH.
Proverbios 8: La sabiduría viva de YHWH.Proverbios 8: La sabiduría viva de YHWH.
Proverbios 8: La sabiduría viva de YHWH.yhostend
 
textos difíciles de la biblia-digital.pdf
textos difíciles de la biblia-digital.pdftextos difíciles de la biblia-digital.pdf
textos difíciles de la biblia-digital.pdfElizabethDiazLazo
 
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptx
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptxCRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptx
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptxRicardoMoreno95679
 
LA POBREZA EN EL PERU - FRANCISCO VERDERA V
LA POBREZA EN EL PERU - FRANCISCO VERDERA VLA POBREZA EN EL PERU - FRANCISCO VERDERA V
LA POBREZA EN EL PERU - FRANCISCO VERDERA Vczspz8nwfx
 
El Modelo del verdadero Compromiso..pptx
El Modelo del verdadero Compromiso..pptxEl Modelo del verdadero Compromiso..pptx
El Modelo del verdadero Compromiso..pptxjenune
 
EXAMENES PREGUNTAS CORTA...........................S.pdf
EXAMENES PREGUNTAS CORTA...........................S.pdfEXAMENES PREGUNTAS CORTA...........................S.pdf
EXAMENES PREGUNTAS CORTA...........................S.pdfinmalopezgranada
 
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptx
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptxSIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptx
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptxDanFlorez2
 
Disciplinas espirituales en el Ministerio de Alabanza.pptx
Disciplinas espirituales en el Ministerio de Alabanza.pptxDisciplinas espirituales en el Ministerio de Alabanza.pptx
Disciplinas espirituales en el Ministerio de Alabanza.pptxAlbertoValdivia26
 
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptx
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptxHIMNARIO MAJESTUOSOL desde 1 hasta100.pptx
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptxDANIEL387046
 
La esposa del ungido (Ramona Estrada)-1-1(1).pdf
La esposa del ungido (Ramona Estrada)-1-1(1).pdfLa esposa del ungido (Ramona Estrada)-1-1(1).pdf
La esposa del ungido (Ramona Estrada)-1-1(1).pdfRamona Estrada
 

Último (15)

DIOS PUEDE SANAR TUS HERIDAS OCULTAS.pptx
DIOS PUEDE SANAR TUS HERIDAS OCULTAS.pptxDIOS PUEDE SANAR TUS HERIDAS OCULTAS.pptx
DIOS PUEDE SANAR TUS HERIDAS OCULTAS.pptx
 
Retiro de mayo #DesdeCasa (2024)
Retiro de mayo #DesdeCasa (2024)Retiro de mayo #DesdeCasa (2024)
Retiro de mayo #DesdeCasa (2024)
 
Proverbios 8: La sabiduría viva de YHWH.
Proverbios 8: La sabiduría viva de YHWH.Proverbios 8: La sabiduría viva de YHWH.
Proverbios 8: La sabiduría viva de YHWH.
 
textos difíciles de la biblia-digital.pdf
textos difíciles de la biblia-digital.pdftextos difíciles de la biblia-digital.pdf
textos difíciles de la biblia-digital.pdf
 
Santa Luisa de Marillac nos muestra: Los escollos a evitar
Santa Luisa de Marillac nos muestra: Los escollos a evitarSanta Luisa de Marillac nos muestra: Los escollos a evitar
Santa Luisa de Marillac nos muestra: Los escollos a evitar
 
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptx
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptxCRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptx
CRECIMIENTO ESPIRITUAL PARA EL CREYENTE 1.pptx
 
LA POBREZA EN EL PERU - FRANCISCO VERDERA V
LA POBREZA EN EL PERU - FRANCISCO VERDERA VLA POBREZA EN EL PERU - FRANCISCO VERDERA V
LA POBREZA EN EL PERU - FRANCISCO VERDERA V
 
El Modelo del verdadero Compromiso..pptx
El Modelo del verdadero Compromiso..pptxEl Modelo del verdadero Compromiso..pptx
El Modelo del verdadero Compromiso..pptx
 
EXAMENES PREGUNTAS CORTA...........................S.pdf
EXAMENES PREGUNTAS CORTA...........................S.pdfEXAMENES PREGUNTAS CORTA...........................S.pdf
EXAMENES PREGUNTAS CORTA...........................S.pdf
 
La oración de santa Luisa de Marillac por el P. Corpus Juan Delgado CM
La oración de santa Luisa de Marillac por el P. Corpus Juan Delgado CMLa oración de santa Luisa de Marillac por el P. Corpus Juan Delgado CM
La oración de santa Luisa de Marillac por el P. Corpus Juan Delgado CM
 
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptx
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptxSIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptx
SIMBOLOS DE LA PALABRA DE DIOS BIBLIA. pptx
 
Disciplinas espirituales en el Ministerio de Alabanza.pptx
Disciplinas espirituales en el Ministerio de Alabanza.pptxDisciplinas espirituales en el Ministerio de Alabanza.pptx
Disciplinas espirituales en el Ministerio de Alabanza.pptx
 
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptx
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptxHIMNARIO MAJESTUOSOL desde 1 hasta100.pptx
HIMNARIO MAJESTUOSOL desde 1 hasta100.pptx
 
Luisa de Marillac y la educación de las niñas pobres
Luisa de Marillac y la educación de las niñas pobresLuisa de Marillac y la educación de las niñas pobres
Luisa de Marillac y la educación de las niñas pobres
 
La esposa del ungido (Ramona Estrada)-1-1(1).pdf
La esposa del ungido (Ramona Estrada)-1-1(1).pdfLa esposa del ungido (Ramona Estrada)-1-1(1).pdf
La esposa del ungido (Ramona Estrada)-1-1(1).pdf
 

Ayuda la clase statement

  • 1. La clase Statement Un objeto Statementse usa para enviar sentencias SQL a la base de datos. Actualmente hay tres tipos de objetos Statement, todos los cuales actúan como contenedores para la ejecución de sentencias en una conexión dada: Statement, PreparedStatement que hereda de Statement. CallableStatement que hereda de PreparedStatement. Estas están especializadas para enviar tipos particulares de sentencias SQL Un objeto Statement se usa para ejecutar una sentencia SQL simple sin parámetros. Un objeto PreparedStatement se usa para ejecutar sentencias SQL pre compiladas con o sin parámetros IN; Un objeto CallableStatement se usa para ejecutar un procedimiento de base de datos almacenado. La interface Statementsuministra métodos básicos para ejecutar sentencias y devolver resultados. La interface PreparedStatement añade métodos para trabajar con los parámetros IN; La interface CallableStatementañade métodos para trabajar con parámetros OUT. Creación de objetos Statement Una vez establecida la conexión con una base de datos particular, esta conexión puede usarse para enviar sentencias SQL. Un objeto Statement se crea mediante el método de Connection createStatement, como podemos ver en el siguiente fragmento de código. Connection con = DriverManager.getConnection(url, "sunny", ""); Statement stmt = con.createStatement(); La sentencia SQL que será enviada a la base de datos es alimentada como un argumento a uno de los métodos de ejecución del objeto Statement. Por ejemplo: Result Set rs = stmt.executeQuery("SELECT a, b, c FROM Table2"); Ejecución de sentencias usando objetos Statement. La interfase Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery, executeUpdate y execute. El método a usar está determinado por el producto de la sentencia SQL. El método executeQuery está diseñado para sentencias que producen como resultado un único result set tal como las sentencias SELECT. El método executeUpdate se usa para ejecutar sentencias INSERT, UPDATE o DELETE así como sentencias SQL DDL (Data Definition Language) como CREATE TABLE o DROP TABLE. El efecto de una sentencia INSERT, UPDATE o DELETE es una modificación de una o más columnas en cero o más filas de una tabla. El valor devuelto de executeUpdate es un entero que indica el número de filas que han sido afectadas (referidos como update count). Para sentencias tales como CREATE TABLE o DROP TABLE, que no operan sobre filas, le valor devuelto por executeUpdate es siempre cero. El método execute se usa para ejecutar sentencias que devuelven más de un result set, más que un update count o una combinación de ambos. Como es esta una característica avanzada que muchos programadores no necesitarían nunca se verá en su propia sección.
  • 2. Todos los métodos que ejecutan sentencias cierran los objetos Resultset abiertos como resultado de las llamadas a Statement. Esto quiere decir que es necesario completar el proceso con el actual objeto Resulset antes de reejecutar una sentencia Statement. Debe notarse que la interfase PreparedStatement, que hereda los métodos de la interface Statement, tiene sus propias versiones de los métodos executeQuery, executeUpdate y execute. Los objetos Statement en si mismos no contienen una sentencia SQL, por tanto debe suministrarse como un argumento a los métodos Statement.execute. Los objetos PreparedStatement no suministran una sentencia SQL como argumento a estos métodos puesto que ya tienen la sentencia pre compilada. Los objetos CallableStatement heredan las formas de estos métodos de PreparedStatement. Usar un parámetro de query con las versiones de los métodos de PreparedStatement o CallableStatement producirá una SQLException. Uso del método execute El método execute debería usarse solamente cuando es posible que una sentencia nos devuelva más de un objeto Resultset, más de un update count o una combinación de ambos. Estas múltiples posibilidades para resultados, aunque raras, son posibles cuando se ejecutan ciertos procedimientos almacenados o por la ejecución dinámica de una string SQL desconocida (esto es, desconocida para el programador de la aplicación en tiempo de compilación). Por ejemplo, una usuario podría ejecutar un procedimiento almacenado (usando una objeto CallableStatement y este procedimiento podría ejecutar una actualización, después una select, luego una actualización, después una select y así. Normalmente, alguien que usa un procedimiento almacenado sabrá que se le va a devolver. Porque el método execute maneja los casos que se salen de lo ordinario, no sorprende que los resultados devueltos requieranalgún manejo especial. Por ejemplo, supongamos que se sabe que el procedimiento devuelve dos result sets. Después de usar el método execute para ejecutar el procedimiento, se debe llamar al método getResultSet para conseguir el primer result set y después los métodos apropiados getXXX para recuperar los valores de él. Para conseguir el segundo result set, se necesita llamar al método getMoreResults y despues a getResultSet de nuevo. Si se sabe que el procedimiento devuelve dos upadte counts, se llama primero al método getUpdateCount, seguido de getMoreResults y de nuevo getUpdateCount. Aquellos casos en los que no se conoce que devolverá se nos presentan una situación más compleja. El método execute devuelve true si el resultado es un objeto ResultSet y false si es un int Java. Si devuelve un int, esto quiere decir que el resultado o bien es un update count o que la sentencia que ha ejecutado es un comando DDL. Lo primero que hay que hacer después de llamar execute es llamar o bien a getResultSet o getUpdateCount. Al método getResultSet se le llama para conseguir el primero de los dos o más objetos ResultSet y al método getUpdateCount para conseguir el primero de dos o más update counts. Cuando el resultado de una sentencia SQL no es un result set, el método getResultSet devolverá null. Esto quiere decir que el resultado es un update count o que no hay más resultados. La única manera de encontrar que significa el valor null en este caso es llamar al método getUpdateCount, que devolverá un entero. Este entero será el número de filas afectadas por la sentencia ejecutada o –1 para indicar o bien que el resultado es un result set o bien que no hay más resultados. Si el método getResultSet ya ha devuelto null, el resultado no puede ser un objeto ResultSet, por lo que el valor devuelto de –1 tiene que ser que no hay más resultados.