SlideShare una empresa de Scribd logo
1 de 10
Ingeniería de Sistemas y Telemática
PREPAREDSTATEMENT
 Marco Aurelio Porro Chulli.
 Erlin Darwin Herrera Cieza.
 Yosmer Aguilar Cabrera.
:V
nos permite ejecutar sentencias SQL sobre una conexión establecida con una base
de datos. Pero en este caso vamos a ejecutar sentencias SQL más especializadas,
estas sentencias SQL se van a denominar sentencias SQL precompiladas y van a
recibir parámetros de entrada.
El interfaz PreparedStatement hereda del interfaz Statement y se diferencia de él
de dos maneras:
Las instancias de
PreparedStatement contienen
sentencias SQL que ya han sido
compiladas.
Esto es lo que hace a una
sentencia "prepared” (preparada).
La sentencia SQL que contiene un objeto
PreparedStatement puede contener uno o
más parámetros de entrada. Un parámetro de
entrada es aquél cuyo valor no se especifica
cuando la sentencia es creada, en su lugar la
sentencia va a tener un signo de interrogación
(?) por cada parámetro de entrada
A continuación se ofrece la acostumbrada referencia rápida de los métodos
void adBatch(): añade un conjunto de parámetros al conjunto de comandos
que se ejecutará en modo batch.
void clearParameters(): elimina los valores de los parámetros actuales.
boolean execute(): ejecuta cualquier tipo de sentencia SQL.
ResultSet executeQuery(): ejecuta la sentencia SQL representada por el
objeto PreparedStatement, devolviendo un objeto ResultSet con el resultado de
la ejecución de la consulta.
int executeUpdate(): ejecuta una sentencia SQL del tipo INSERT, UPDATE o
DELETE.
ResultSetMetaData getMetaData(): devuelve un objeto ResultSetMetaData
que contendrá el número, tipos y propiedades de las columnas de un objeto
ResultSet.
void setArray(int índiceParámetro, Array valor)
void setBoolean(int índiceParámetro, boolean valor),etc.
Para crear un objeto PreparedStatement se debe lanzar el
método prepareStatement() del interfaz Connection sobre el
objeto que representa la conexión establecida con la base de
datos.
En el siguiente ejemplo se puede ver como se crearía un objeto
PreparedStatement que representa una sentencia SQL con dos
parámetros de entrada.
Connection
conexion=DriverManager.getConnection(url,"pepe","xxxx");
PreparedStatement
sentencia=conexion.prepareStatement("UPDATE MiTabla SET
nombre =?"+"WHERE clave =?");
Antes de poder ejecutar un objeto PreparedStatement se debe asignar un valor
para cada uno de sus parámetros. Esto se realiza mediante la llamada a un método
setXXX, donde XXX es el tipo apropiado para el parámetro.
Del la siguiente forma
Connection conexion=DriverManager.getConnection(url);
PreparedStatement sentencia=conexion.prepareStatement("UPDATE MiTabla SET
nombre = ? "+"WHERE clave =?");
sentencia.setString(1,"Pepe");
sentencia.setInt(2,157);
Una vez que se ha asignado unos valores a los parámetros de entrada de una
sentencia, el objeto PreparedStatement se puede ejecutar múltiples veces, hasta
que sean borrados los parámetros con el método clearParameters(),
El Código muestra como una vez creado un objeto PreparedStatement
se ejecuta variasveces y se le cambian los parámetros.
Connection conexion=DriverManager.getConnection(url);
PreparedStatement sentencia=conexion.prepareStatement("UPDATE
MiTabla SET Id = ?"+"WHERE num=?");
for (int i=0;i<20;i++){
sentencia.setInt(1,i);
sentencia.setInt(2,i);
sentencia.executeUpdate();
}
Ejecuta la instrucción SQL determinada, que puede ser una instrucción INSERT,
UPDATE, MERGE o DELETE; o una instrucción SQL que no devuelve nada, como una
instrucción DDL de SQL.
Un objeto CallableStatement ofrece la posibilidad de realizar llamadas a
procedimientos almacenados de una forma estándar para todos los DBMS. Un
procedimiento almacenado se encuentra dentro de una base de datos; la llamada a
un procedimiento es lo que contiene un objeto CallableStatement.
La sintaxis para realizar la llamada a un procedimiento almacenado es la siguiente:
{call nombre_del_procedimiento[(?,?,...)]}
Si devuelve un parámetro de resultado:
{?=call nombre_del_procedimiento[(?.?...)]}
La sintaxis de una llamada a un procedimiento sin ningún tipo de parámetros sería:
{call nombre_del_procedimiento}
Los objetos CallableStatement se crean con el método prepareCall
de
Connection. El siguiente ejemplo crea una instancia de
CallableStatement que contiene una llamada al procedimiento
almacenado getTestData, con dosargumentos y no devuelve
resultados.
CallableStatement cstmt = con.prepareCall(
"{call getTestData(?, ?)}");
donde los encajes ‘?’ son parámetros IN, OUT ó INOUT dependiendo
del
procedimiento getTestData.
EJEMPLOS.
El siguiente fragmento de código, donde con es un objeto Connection,
crea un objeto PreparedStatement que contiene una instrucción SQL:
//Creamos un objeto PreparedStatement desde el objeto Connection
PreparedStatement ps = con.prepareStatement(
"select * from Propietarios where DNI=? AND NOMBRE=? AND
EDAD=?");
//Seteamos los datos al prepared statement de la siguiente forma:
ps.setString(1, dni);
ps.setString(2, nombre);
ps.setInt(3, edad);
//Ejecutamos el PreparedStatement, en este caso con executeQuery()
ResultSet rs= ps.executeQuery();
Por ejemplo supongamos que hay un campo de texto en el que el usuario
puede introducir su dirección de correo electrónico y con este dato se desea
buscar al usuario:
Connection con = DriverManager.getConnection(url);
String consulta = "SELECT usuario FROM registro WHERE email like ?";
PreparedStatement pstmt = con.prepareStatement(consulta);
pstmt.setString(1 , campoTexto.getText());
ResultSet resultado = ps.executeQuery();

Más contenido relacionado

La actualidad más candente

Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
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 reportjbersosa
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
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 datosjbersosa
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desdejbersosa
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
 
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 NETBEANSWilliam Diaz S
 
Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosUNACAR
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbcjbersosa
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportjbersosa
 

La actualidad más candente (20)

Statement
StatementStatement
Statement
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
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
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
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
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Statement
StatementStatement
Statement
 
PreparedStatement
PreparedStatementPreparedStatement
PreparedStatement
 
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
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenados
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper report
 

Destacado (10)

DAYTON corporate presentation
DAYTON corporate presentationDAYTON corporate presentation
DAYTON corporate presentation
 
M04 27 Tips and Tricks for a Successful Deployment - Miller Final
M04 27 Tips and Tricks for a Successful Deployment - Miller FinalM04 27 Tips and Tricks for a Successful Deployment - Miller Final
M04 27 Tips and Tricks for a Successful Deployment - Miller Final
 
JDBC
JDBCJDBC
JDBC
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Seo for your WordPress site doesn’t need to be hard
Seo for your WordPress site doesn’t need to be hardSeo for your WordPress site doesn’t need to be hard
Seo for your WordPress site doesn’t need to be hard
 
Presentación result set
Presentación result setPresentación result set
Presentación result set
 
Coneccion
ConeccionConeccion
Coneccion
 
Java de erlin
Java de erlinJava de erlin
Java de erlin
 
Snehal Thaker
Snehal ThakerSnehal Thaker
Snehal Thaker
 
Presentación1
Presentación1Presentación1
Presentación1
 

Similar a Prepared statement (20)

Preparedstatement(grupal)
Preparedstatement(grupal)Preparedstatement(grupal)
Preparedstatement(grupal)
 
Laboratorio de Programacion
Laboratorio de ProgramacionLaboratorio de Programacion
Laboratorio de Programacion
 
Preparedstatement
PreparedstatementPreparedstatement
Preparedstatement
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
preparedStatement
preparedStatementpreparedStatement
preparedStatement
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
Conexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansConexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeans
 
Prepared Statement
Prepared StatementPrepared Statement
Prepared Statement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Ado
AdoAdo
Ado
 
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-20063. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
 
JAVA CON BASE DE DATOS
JAVA CON  BASE DE DATOSJAVA CON  BASE DE DATOS
JAVA CON BASE DE DATOS
 
PreparedStatement
PreparedStatementPreparedStatement
PreparedStatement
 
Statement
StatementStatement
Statement
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Connection Java
Connection JavaConnection Java
Connection Java
 

Más de Erlin Darwin Herrera cieza (19)

Sistema para un molino Arrocero
Sistema para un molino ArroceroSistema para un molino Arrocero
Sistema para un molino Arrocero
 
Diapositivas olap
Diapositivas olapDiapositivas olap
Diapositivas olap
 
Copia de seguridad y restaurar
Copia de seguridad y restaurarCopia de seguridad y restaurar
Copia de seguridad y restaurar
 
Segruridad en sql server
Segruridad en sql serverSegruridad en sql server
Segruridad en sql server
 
4 procedimientos-almacenados
4 procedimientos-almacenados4 procedimientos-almacenados
4 procedimientos-almacenados
 
5 cursores
5 cursores5 cursores
5 cursores
 
Vistas
VistasVistas
Vistas
 
Comandos ddl-trabajo-02-bdii
Comandos ddl-trabajo-02-bdiiComandos ddl-trabajo-02-bdii
Comandos ddl-trabajo-02-bdii
 
Lenguaje transact-sql
Lenguaje transact-sqlLenguaje transact-sql
Lenguaje transact-sql
 
Ejecutables en netbeans
Ejecutables en netbeansEjecutables en netbeans
Ejecutables en netbeans
 
I report
I reportI report
I report
 
Jdbc
JdbcJdbc
Jdbc
 
Objeto sqlcomand
Objeto sqlcomandObjeto sqlcomand
Objeto sqlcomand
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Espacio de nombres system.data.sqlclient
Espacio de nombres system.data.sqlclientEspacio de nombres system.data.sqlclient
Espacio de nombres system.data.sqlclient
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor de-base-de-batos
Gestor de-base-de-batosGestor de-base-de-batos
Gestor de-base-de-batos
 
Poo
PooPoo
Poo
 
Programacion capas
Programacion capasProgramacion capas
Programacion capas
 

Último

Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxPaolaVillalba13
 
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
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
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
 

Último (20)

Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptx
 
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
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
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
 

Prepared statement

  • 1. Ingeniería de Sistemas y Telemática PREPAREDSTATEMENT  Marco Aurelio Porro Chulli.  Erlin Darwin Herrera Cieza.  Yosmer Aguilar Cabrera. :V
  • 2. nos permite ejecutar sentencias SQL sobre una conexión establecida con una base de datos. Pero en este caso vamos a ejecutar sentencias SQL más especializadas, estas sentencias SQL se van a denominar sentencias SQL precompiladas y van a recibir parámetros de entrada. El interfaz PreparedStatement hereda del interfaz Statement y se diferencia de él de dos maneras: Las instancias de PreparedStatement contienen sentencias SQL que ya han sido compiladas. Esto es lo que hace a una sentencia "prepared” (preparada). La sentencia SQL que contiene un objeto PreparedStatement puede contener uno o más parámetros de entrada. Un parámetro de entrada es aquél cuyo valor no se especifica cuando la sentencia es creada, en su lugar la sentencia va a tener un signo de interrogación (?) por cada parámetro de entrada
  • 3. A continuación se ofrece la acostumbrada referencia rápida de los métodos void adBatch(): añade un conjunto de parámetros al conjunto de comandos que se ejecutará en modo batch. void clearParameters(): elimina los valores de los parámetros actuales. boolean execute(): ejecuta cualquier tipo de sentencia SQL. ResultSet executeQuery(): ejecuta la sentencia SQL representada por el objeto PreparedStatement, devolviendo un objeto ResultSet con el resultado de la ejecución de la consulta. int executeUpdate(): ejecuta una sentencia SQL del tipo INSERT, UPDATE o DELETE. ResultSetMetaData getMetaData(): devuelve un objeto ResultSetMetaData que contendrá el número, tipos y propiedades de las columnas de un objeto ResultSet. void setArray(int índiceParámetro, Array valor) void setBoolean(int índiceParámetro, boolean valor),etc.
  • 4. Para crear un objeto PreparedStatement se debe lanzar el método prepareStatement() del interfaz Connection sobre el objeto que representa la conexión establecida con la base de datos. En el siguiente ejemplo se puede ver como se crearía un objeto PreparedStatement que representa una sentencia SQL con dos parámetros de entrada. Connection conexion=DriverManager.getConnection(url,"pepe","xxxx"); PreparedStatement sentencia=conexion.prepareStatement("UPDATE MiTabla SET nombre =?"+"WHERE clave =?");
  • 5. Antes de poder ejecutar un objeto PreparedStatement se debe asignar un valor para cada uno de sus parámetros. Esto se realiza mediante la llamada a un método setXXX, donde XXX es el tipo apropiado para el parámetro. Del la siguiente forma Connection conexion=DriverManager.getConnection(url); PreparedStatement sentencia=conexion.prepareStatement("UPDATE MiTabla SET nombre = ? "+"WHERE clave =?"); sentencia.setString(1,"Pepe"); sentencia.setInt(2,157); Una vez que se ha asignado unos valores a los parámetros de entrada de una sentencia, el objeto PreparedStatement se puede ejecutar múltiples veces, hasta que sean borrados los parámetros con el método clearParameters(),
  • 6. El Código muestra como una vez creado un objeto PreparedStatement se ejecuta variasveces y se le cambian los parámetros. Connection conexion=DriverManager.getConnection(url); PreparedStatement sentencia=conexion.prepareStatement("UPDATE MiTabla SET Id = ?"+"WHERE num=?"); for (int i=0;i<20;i++){ sentencia.setInt(1,i); sentencia.setInt(2,i); sentencia.executeUpdate(); }
  • 7. Ejecuta la instrucción SQL determinada, que puede ser una instrucción INSERT, UPDATE, MERGE o DELETE; o una instrucción SQL que no devuelve nada, como una instrucción DDL de SQL. Un objeto CallableStatement ofrece la posibilidad de realizar llamadas a procedimientos almacenados de una forma estándar para todos los DBMS. Un procedimiento almacenado se encuentra dentro de una base de datos; la llamada a un procedimiento es lo que contiene un objeto CallableStatement. La sintaxis para realizar la llamada a un procedimiento almacenado es la siguiente: {call nombre_del_procedimiento[(?,?,...)]} Si devuelve un parámetro de resultado: {?=call nombre_del_procedimiento[(?.?...)]} La sintaxis de una llamada a un procedimiento sin ningún tipo de parámetros sería: {call nombre_del_procedimiento}
  • 8. Los objetos CallableStatement se crean con el método prepareCall de Connection. El siguiente ejemplo crea una instancia de CallableStatement que contiene una llamada al procedimiento almacenado getTestData, con dosargumentos y no devuelve resultados. CallableStatement cstmt = con.prepareCall( "{call getTestData(?, ?)}"); donde los encajes ‘?’ son parámetros IN, OUT ó INOUT dependiendo del procedimiento getTestData.
  • 9. EJEMPLOS. El siguiente fragmento de código, donde con es un objeto Connection, crea un objeto PreparedStatement que contiene una instrucción SQL: //Creamos un objeto PreparedStatement desde el objeto Connection PreparedStatement ps = con.prepareStatement( "select * from Propietarios where DNI=? AND NOMBRE=? AND EDAD=?"); //Seteamos los datos al prepared statement de la siguiente forma: ps.setString(1, dni); ps.setString(2, nombre); ps.setInt(3, edad); //Ejecutamos el PreparedStatement, en este caso con executeQuery() ResultSet rs= ps.executeQuery();
  • 10. Por ejemplo supongamos que hay un campo de texto en el que el usuario puede introducir su dirección de correo electrónico y con este dato se desea buscar al usuario: Connection con = DriverManager.getConnection(url); String consulta = "SELECT usuario FROM registro WHERE email like ?"; PreparedStatement pstmt = con.prepareStatement(consulta); pstmt.setString(1 , campoTexto.getText()); ResultSet resultado = ps.executeQuery();