SlideShare uma empresa Scribd logo
1 de 20
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.
Un objeto Statement se 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 y 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 precompiladas con o sin parámetros IN; y un
objeto CallableStatement se usa para ejecutar un procedimieno de base de datos almacenado.
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:
ResultSet 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 esta determinado por el producto de la
sentencia SQL
El método executeQuery esta 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 ó 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 (referido 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.
REALIZACIÓN DE STATEMENT
Cuando una conexión está en modo auto-commit, las sentencias ejecutadas son ‘comitadas’ o
rechazadas cuando se completan. Un sentencia se considera completa cuando ha sido ejecutada y se
han devuelto todos los resultados. Pare el método executeQuery, que devuelve un único result set, la
sentencia se completa cuando todas las filas del objeto ResultSet se han devuelto. Para el método
executeUpdate, un sentencia se completa cuando se ejecuta. En los raros casos en que se llama al
método execute, de cualquier modo, no se completa hasta que los result sets o update counts que se
generan han sido devueltos.
Algunos DBMS tratan cada sentencia en un procedimiento almacenado como sentencias separadas.
Otros tratan el procedimiento entero como una sentencia compuesta. Esta diferencia se convierte en
importante cuando está activo el modo auto-commit porque afecta cuando se llama al método commit.
En el primer caso, cada sentencia individual es commitada. En el segundo, se commiten todas juntas.
CERRAR OBJETOS STATEMENT
Los objetos Statement se cerrarán automáticamente por el colector de basura de
Java (garbage collector). No obstante se recomienda como una buena práctica de
programación que se cierren explicitamente cuando no sean ya necesarios. Esto
libera recursos DBMS inmediatamente y ayuda a evitar potenciales problemas de
memoria.
SINTAXIS DE ESCAPE SQL EN OBJETOS
STATEMENT
Los objetos Statement pueden contener sentencias SQL que usen sintaxis de escape SQL. La sintaxis de
escape señala al driver que el código que lleva debe ser tratado diferentemente. El driver buscará por
cualquier sintaxis de escape y lo traducirá en código que entiende la base de datos en particular. Esto hace
que la sintaxis de escape sea independiente de la DBMS y permite al programador usar características que
de otro modo no estarían disponibles.
Una clausula de escape se enmarca entre llaves y tiene una palabra clave:
{keyword . . . parameters . . . }
La palabra clave (keyword) indica el tipo de clausula de escape, según se muestra:
• escape para caracteres LIKE
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., mas 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, un 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 requieren algun manejo especial. Por ejemplo, supongamos que se sabe que el procedimiento
devuelve dos result sets.
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 conn, la siguiente
línea de código crea un objeto Statement para pasar sentencias SQL a la base de datos:
Statement stmt = conn.createStatement();
Especificar características 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:
EJEMPLOS
EJEMPLO 1: Establecemos la conexión con la base de datos.
Connection conexion = DriverManager.getConnection
("jdbc:mysql://localhost/prueba","root", "la_clave");
// Preparamos la consulta
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
// Recorremos el resultado, mientras haya registros para leer, y escribimos
el resultado en pantalla.
while (rs.next())
{
System.out.println (rs.getInt (1) + " "
+ rs.getString (2)+ " " + rs.getDate(3));
}
// Cerramos la conexión a la base de datos.
conexion.close();
2° EJEMPLO
import java.sql.*;
import java.util.Properties;
public class StatementExample {
public static void main(java.lang.String[] args)
{
// Sugerencia: cargarlos desde un objeto de propiedades.
String DRIVER = "com.ibm.db2.jdbc.app.DB2Driver";
String URL = "jdbc:db2://*local";
// Registrar el controlador JDBC nativo. Si el controlador no puede
// registrarse, la prueba no puede continuar.
try {Class.forName(DRIVER);
} catch (Exception e) {
System.out.println("No se ha podido registrar el controlador.");
System.out.println(e.getMessage());
System.exit(1);
}
Connection c = null;
Statement s = null;
try {
// Crear las propiedades de conexión.
Properties properties = new
Properties ();
properties.put ("user", "userid");
properties.put ("password",
"password");
// Conectar con la base de datos local.
c = DriverManager.getConnection(URL,
properties);
// Crear un objeto Statement.
s = c.createStatement();
// Suprimir la tabla de prueba, si existe. Nota: en este
// ejemplo se presupone que la colección MYLIBRARY
// existe en el sistema.
try {
s.executeUpdate("DROP TABLE MYLIBRARY.MYTABLE");
} catch (SQLException e) {
// Continuar simplemente... es probable que la tabla no exista.
}
// Ejecutar una sentencia SQL que crea una tabla en la base de datos.
s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME VARCHAR(20),
ID INTEGER)");
// Ejecutar algunas sentencias SQL que insertan registros en la tabla.
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES
('RICH', 123)");
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES
('FRED', 456)");
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES
('MARK', 789)");
// Ejecutar una consulta SQL en la tabla.
ResultSet rs = s.executeQuery("SELECT * FROM MYLIBRARY.MYTABLE");
// Visualizar todos los datos de la tabla.
while (rs.next()) {
System.out.println("El empleado " + rs.getString(1) +
" tiene el ID " + rs.getInt(2));
}
} catch (SQLException sqle) {
System.out.println("El proceso de base de datos ha
fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
errar los recursos de base de datos.
try {
if (s != null) {
s.close();}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}}try {
if (c != null) {
c.close();}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Connection.");}}}}
Statement

Mais conteúdo relacionado

Mais procurados (18)

Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence API
 
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
 
Conectar java con una base de datos
Conectar java con una base de datosConectar java con una base de datos
Conectar java con una base de datos
 
Tema statement
Tema statementTema statement
Tema statement
 
Statement
StatementStatement
Statement
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Statement
StatementStatement
Statement
 
Connection
ConnectionConnection
Connection
 
JPA en Netbeans
JPA en NetbeansJPA en Netbeans
JPA en Netbeans
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Ayuda la clase statement
Ayuda la clase statementAyuda la clase statement
Ayuda la clase statement
 
Preparedstatemet
PreparedstatemetPreparedstatemet
Preparedstatemet
 
Objeto Sql Command
Objeto Sql CommandObjeto Sql Command
Objeto Sql Command
 
Trabajo de statement
Trabajo de statementTrabajo de statement
Trabajo de statement
 

Destaque

Las masas, ¿controlan a los medios?
Las masas, ¿controlan a los medios?Las masas, ¿controlan a los medios?
Las masas, ¿controlan a los medios?Melissa Gonzalez
 
Tips for having a Good Trip to Korea (final)
Tips for having a Good Trip to Korea (final)Tips for having a Good Trip to Korea (final)
Tips for having a Good Trip to Korea (final)eng2group3work
 
Describe the ways in which international business has an impact on your life
Describe the ways in which international business has an impact on your lifeDescribe the ways in which international business has an impact on your life
Describe the ways in which international business has an impact on your lifeanswersheethelp help
 
Presentación de la web 2.0
Presentación de  la web 2.0Presentación de  la web 2.0
Presentación de la web 2.0Facuu2020
 
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramosisamarin7
 
Thriller presentation
Thriller presentationThriller presentation
Thriller presentation008464
 
Thriller Final Ideas
Thriller Final IdeasThriller Final Ideas
Thriller Final Ideas008464
 
Presentación resumen unidad n1 tics
Presentación resumen unidad n1 ticsPresentación resumen unidad n1 tics
Presentación resumen unidad n1 ticsFernanda Malla
 

Destaque (16)

The climateof india
The climateof indiaThe climateof india
The climateof india
 
Las masas, ¿controlan a los medios?
Las masas, ¿controlan a los medios?Las masas, ¿controlan a los medios?
Las masas, ¿controlan a los medios?
 
Tips for having a Good Trip to Korea (final)
Tips for having a Good Trip to Korea (final)Tips for having a Good Trip to Korea (final)
Tips for having a Good Trip to Korea (final)
 
Describe the ways in which international business has an impact on your life
Describe the ways in which international business has an impact on your lifeDescribe the ways in which international business has an impact on your life
Describe the ways in which international business has an impact on your life
 
Tic trabajo final
Tic trabajo finalTic trabajo final
Tic trabajo final
 
STARMALL BATAAN
STARMALL BATAANSTARMALL BATAAN
STARMALL BATAAN
 
p.65 (final)
p.65 (final)p.65 (final)
p.65 (final)
 
J table
J tableJ table
J table
 
Hassan C.V
Hassan C.VHassan C.V
Hassan C.V
 
Presentación de la web 2.0
Presentación de  la web 2.0Presentación de  la web 2.0
Presentación de la web 2.0
 
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos
8 3-22-slideshare- citas y referencias bibliográficas- maria isabel muñoz ramos
 
Documentation of Biodiversity
Documentation of BiodiversityDocumentation of Biodiversity
Documentation of Biodiversity
 
All About Me presentation
All About Me presentationAll About Me presentation
All About Me presentation
 
Thriller presentation
Thriller presentationThriller presentation
Thriller presentation
 
Thriller Final Ideas
Thriller Final IdeasThriller Final Ideas
Thriller Final Ideas
 
Presentación resumen unidad n1 tics
Presentación resumen unidad n1 ticsPresentación resumen unidad n1 tics
Presentación resumen unidad n1 tics
 

Semelhante a Statement (20)

Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Presentación1
Presentación1Presentación1
Presentación1
 
Diapositivas objeto statement
Diapositivas objeto statementDiapositivas objeto statement
Diapositivas objeto statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Dispositivas de la clase statement
Dispositivas de la clase statementDispositivas de la clase statement
Dispositivas de la clase statement
 
statement
statementstatement
statement
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
java con base de datos
java con base de datos java con base de datos
java con base de datos
 
ee
eeee
ee
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
JAVA CON BASE DE DATOS
JAVA CON  BASE DE DATOSJAVA CON  BASE DE DATOS
JAVA CON BASE DE DATOS
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Objeto Statement
Objeto StatementObjeto Statement
Objeto Statement
 
JDBC
JDBCJDBC
JDBC
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Notas clase
Notas claseNotas clase
Notas clase
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 

Mais de LUISA VEGA MONTENEGRO (9)

Data warehouse
Data warehouseData warehouse
Data warehouse
 
Trigger activadores
Trigger    activadoresTrigger    activadores
Trigger activadores
 
Procedimientos
ProcedimientosProcedimientos
Procedimientos
 
Vista
VistaVista
Vista
 
Universidad
Universidad Universidad
Universidad
 
Resulset
ResulsetResulset
Resulset
 
Connection
ConnectionConnection
Connection
 
Jdbc
JdbcJdbc
Jdbc
 
JAVA
JAVAJAVA
JAVA
 

Último

La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionnewspotify528
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasAhmedMontaoSnchez1
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxPATRICIAKARIMESTELAL
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
Tema 7 Plantas Industriales (2).pptx ingenieria
Tema 7 Plantas Industriales (2).pptx ingenieriaTema 7 Plantas Industriales (2).pptx ingenieria
Tema 7 Plantas Industriales (2).pptx ingenieriaLissetteMorejonLeon
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmáncesarguzmansierra751
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfjhorbycoralsanchez
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptxJOSLUISCALLATAENRIQU
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfAuraGabriela2
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfesparzadaniela548
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaCulturaGeneral1
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 

Último (20)

La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacion
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnas
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Tema 7 Plantas Industriales (2).pptx ingenieria
Tema 7 Plantas Industriales (2).pptx ingenieriaTema 7 Plantas Industriales (2).pptx ingenieria
Tema 7 Plantas Industriales (2).pptx ingenieria
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmán
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdf
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA Colombia
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 

Statement

  • 1.
  • 2.
  • 3. 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. Un objeto Statement se 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 y 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 precompiladas con o sin parámetros IN; y un objeto CallableStatement se usa para ejecutar un procedimieno de base de datos almacenado.
  • 4. 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: ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2");
  • 5. 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 esta determinado por el producto de la sentencia SQL El método executeQuery esta 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 ó 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 (referido 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.
  • 6. REALIZACIÓN DE STATEMENT Cuando una conexión está en modo auto-commit, las sentencias ejecutadas son ‘comitadas’ o rechazadas cuando se completan. Un sentencia se considera completa cuando ha sido ejecutada y se han devuelto todos los resultados. Pare el método executeQuery, que devuelve un único result set, la sentencia se completa cuando todas las filas del objeto ResultSet se han devuelto. Para el método executeUpdate, un sentencia se completa cuando se ejecuta. En los raros casos en que se llama al método execute, de cualquier modo, no se completa hasta que los result sets o update counts que se generan han sido devueltos. Algunos DBMS tratan cada sentencia en un procedimiento almacenado como sentencias separadas. Otros tratan el procedimiento entero como una sentencia compuesta. Esta diferencia se convierte en importante cuando está activo el modo auto-commit porque afecta cuando se llama al método commit. En el primer caso, cada sentencia individual es commitada. En el segundo, se commiten todas juntas.
  • 7. CERRAR OBJETOS STATEMENT Los objetos Statement se cerrarán automáticamente por el colector de basura de Java (garbage collector). No obstante se recomienda como una buena práctica de programación que se cierren explicitamente cuando no sean ya necesarios. Esto libera recursos DBMS inmediatamente y ayuda a evitar potenciales problemas de memoria.
  • 8. SINTAXIS DE ESCAPE SQL EN OBJETOS STATEMENT Los objetos Statement pueden contener sentencias SQL que usen sintaxis de escape SQL. La sintaxis de escape señala al driver que el código que lleva debe ser tratado diferentemente. El driver buscará por cualquier sintaxis de escape y lo traducirá en código que entiende la base de datos en particular. Esto hace que la sintaxis de escape sea independiente de la DBMS y permite al programador usar características que de otro modo no estarían disponibles. Una clausula de escape se enmarca entre llaves y tiene una palabra clave: {keyword . . . parameters . . . } La palabra clave (keyword) indica el tipo de clausula de escape, según se muestra: • escape para caracteres LIKE
  • 9. 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., mas 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, un 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 requieren algun manejo especial. Por ejemplo, supongamos que se sabe que el procedimiento devuelve dos result sets.
  • 10. 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 conn, la siguiente línea de código crea un objeto Statement para pasar sentencias SQL a la base de datos: Statement stmt = conn.createStatement(); Especificar características 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:
  • 11. EJEMPLOS EJEMPLO 1: Establecemos la conexión con la base de datos. Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "la_clave"); // Preparamos la consulta Statement s = conexion.createStatement(); ResultSet rs = s.executeQuery ("select * from persona"); // Recorremos el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla. while (rs.next()) {
  • 12. System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3)); } // Cerramos la conexión a la base de datos. conexion.close();
  • 13. 2° EJEMPLO import java.sql.*; import java.util.Properties; public class StatementExample { public static void main(java.lang.String[] args) { // Sugerencia: cargarlos desde un objeto de propiedades. String DRIVER = "com.ibm.db2.jdbc.app.DB2Driver"; String URL = "jdbc:db2://*local";
  • 14. // Registrar el controlador JDBC nativo. Si el controlador no puede // registrarse, la prueba no puede continuar. try {Class.forName(DRIVER); } catch (Exception e) { System.out.println("No se ha podido registrar el controlador."); System.out.println(e.getMessage()); System.exit(1); } Connection c = null; Statement s = null; try {
  • 15. // Crear las propiedades de conexión. Properties properties = new Properties (); properties.put ("user", "userid"); properties.put ("password", "password"); // Conectar con la base de datos local. c = DriverManager.getConnection(URL, properties);
  • 16. // Crear un objeto Statement. s = c.createStatement(); // Suprimir la tabla de prueba, si existe. Nota: en este // ejemplo se presupone que la colección MYLIBRARY // existe en el sistema. try { s.executeUpdate("DROP TABLE MYLIBRARY.MYTABLE"); } catch (SQLException e) { // Continuar simplemente... es probable que la tabla no exista. }
  • 17. // Ejecutar una sentencia SQL que crea una tabla en la base de datos. s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME VARCHAR(20), ID INTEGER)"); // Ejecutar algunas sentencias SQL que insertan registros en la tabla. s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('RICH', 123)"); s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('FRED', 456)"); s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID) VALUES ('MARK', 789)"); // Ejecutar una consulta SQL en la tabla. ResultSet rs = s.executeQuery("SELECT * FROM MYLIBRARY.MYTABLE");
  • 18. // Visualizar todos los datos de la tabla. while (rs.next()) { System.out.println("El empleado " + rs.getString(1) + " tiene el ID " + rs.getInt(2)); } } catch (SQLException sqle) { System.out.println("El proceso de base de datos ha fallado."); System.out.println("Razón: " + sqle.getMessage()); } finally {
  • 19. errar los recursos de base de datos. try { if (s != null) { s.close();} } catch (SQLException e) { System.out.println("El borrado no ha podido cerrar Statement."); }}try { if (c != null) { c.close();} } catch (SQLException e) { System.out.println("El borrado no ha podido cerrar Connection.");}}}}