SlideShare una empresa de Scribd logo
1 de 11
Alumnos: Eber Carrero Menor
Joel Vasquez Esp
PREPAREDSTATEMENT
Las instancias de PreparedStatement contienen una sentencia SQL que ya
ha sido compilada. Esto es lo que hace que se le llame ‘preparada’. La
sentencia SQL contenida en un objeto PreparedStatement pueden tener uno
o más parámetros IN. Un parámetro IN es aquel cuyo valor no se especifica
en la sentencia SQL cuando se crea.
PreparedStatement nos permite definir una sentencia SQL base,
que nos sirve para modificar/insertar/buscar uno o varios registros
con sólo cambiar los valores de los parámetros que
especifiquemos.
Uso del método PreparedStatement.executeQuery para
obtener datos de DB2
Para obtener datos de una tabla utilizando una sentencia SELECT con marcadores de
parámetros, utilice el métodoPreparedStatement.executeQuery. Este método devuelve
una tabla de resultados en un objeto ResultSet. Una vez obtenida la tabla de resultados,
debe utilizar métodos de ResultSet para desplazarse por la tabla de resultados y obtener
los valores de cada columna de cada fila.
METODOS:
 Método executeUpdate
Ejecuta la instrucción SQL determinada, que puede ser una
instrucción INSERT, UPDATE o DELETE; o una instrucción
SQL que no devuelve nada, como una instrucción DDL de
SQL. Desde el controlador JDBC 3.0 de MicrosoftSQL Server,
executeUpdate devolverán el número correcto de filas
actualizado en una operación MERGE.
Sintaxis:
public int executeUpdate(java.lang.String sql) Parámetros
 Uso de CallableStatement
-Un objeto CallableStatement provee
de una forma estándar de llamar a
procedimientos almacenados de la
base de datos. Un procedimiento
almacenado se encuentra en la base
de datos. La llamada al procedimiento
es lo que contiene el objeto
CallableStatement.
-CallableStatement hereda los métodos de Statement,
los cuales tratan sentencias SQL en general, y también
hereda los métodos de PreparedStatement, que tratan
los parámetros IN. Todos los métodos definidos para
CallableStatement tratan los parámetros OUT o los
aspectos de salida de los parámetros INOUT: registro de
los tipos JDBC (tipos genéricos SQL) de los parámetros
OUT, recuperación de valores desde ellos o chequear si
el valor devuelto es un JDBC NULL.
 Crear objetos CallableStatement
-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
dos argumentos y no devuelve resultados.
CallableStatement cstmt = con.prepareCall(
"{call getTestData(?, ?)}"); donde los encajes ‘?’ son parámetros IN, OUT ó
INOUT dependiendo del procedimiento getTestData.
 Parámetros IN y OUT
-El paso de valor para cualquier parámetro IN de un
objeto CallableStatement se realiza mediante los
métodos setXXX heredados de PreparedStatement. El
tipo de el valor a pasar se determina por el método
setXXX a usar (setFloat para pasar un valor float, y
así).
-Si el procedimiento almacenado devuelve
parámetros OUT, el tipo JDBC de cada parámetro OUT
debe ser registrado antes de que el objeto
CallableStatement sea ejecutado (Esto es necesario
porque algunas DBMS necesitan el tipo JDBC).
CallableStatement cstmt = con.prepareCall(
"{call getTestData(?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
cstmt.registerOutParameter(2, java.sql.Types.DECIMAL,
3);
cstmt.executeQuery();
byte x = cstmt.getByte(1);
java.math.BigDecimal n = cstmt.getBigDecimal(2, 3);
De modo distinto a ResultSet, CallableStatement no
tiene un mecanismo especial para recuperar grandes
valores OUT incrementalmente.
 EJEMPLOS
Suponga que desea ejecutar esta sentencia de SQL:
UPDATE EMPLOYEE SET PHONENO='4657' WHERE
EMPNO='000010'
El código siguiente crea el objeto Statement denominado
stmt, ejecuta la sentencia UPDATE y devuelve en numUpd el
número de filas que fueron actualizadas. Los números que
aparecen a la derecha de algunas sentencias corresponden a
los pasos descritos anteriormente.
Utilización de Statement.executeUpdateConnection con;
Statement stmt;
int numUpd;
stmt = con.createStatement(); // Crear un objeto Statement 1
numUpd = stmt.executeUpdate("UPDATE EMPLOYEE SET
PHONENO='4657' WHERE EMPNO='000010'");
// Ejecutar la actualización 2
stmt.close(); // Cerrar el objeto Statement 3
Ejemplo 01
String empnum, phonenum;
Connection con;
PreparedStatement pstmt;
ResultSet rs;
pstmt = con.prepareStatement(
"SELECT EMPNO, PHONENO FROM EMPLOYEE WHERE
EMPNO=?");
// Crear un objeto PreparedStatement 1
pstmt.setString(1,"000010"); // Asignar valor a parámetro de
entrada 2
rs = pstmt.executeQuery(); // Obtener tabla de resultados
de la consulta 3
while (rs.next()) { // Posicionar el cursor 4
empnum = rs.getString(1); // Obtener el valor de la primera
columna
phonenum = rs.getString(2); // Obtener el valor de la primera
columna
System.out.println("Número de empleado = " + empnum +
"Número de teléfono = " + phonenum);
// Imprimir valores de columnas
Ejemplo 02
Preparedstatement

Más contenido relacionado

La actualidad más candente

7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
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
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosbat1820
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQLRonald Rivas
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenadoshirmaroxana13
 
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
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Universidad Nacional de Piura
 
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
 

La actualidad más candente (20)

7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Sql procedimientos-almacenados
Sql procedimientos-almacenadosSql procedimientos-almacenados
Sql procedimientos-almacenados
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
preparedStatement
preparedStatementpreparedStatement
preparedStatement
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Preparedstatement(grupal)
Preparedstatement(grupal)Preparedstatement(grupal)
Preparedstatement(grupal)
 
Resulset
ResulsetResulset
Resulset
 
Statement
StatementStatement
Statement
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Preparedstatemet
Preparedstatemet Preparedstatemet
Preparedstatemet
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria 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
 
Statement
StatementStatement
Statement
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
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
 

Similar a Preparedstatement (20)

Prepared statement
Prepared statementPrepared statement
Prepared statement
 
ee
eeee
ee
 
Laboratorio de Programacion
Laboratorio de ProgramacionLaboratorio de Programacion
Laboratorio de Programacion
 
Statement
StatementStatement
Statement
 
Objeto prepared statement
Objeto prepared statementObjeto prepared statement
Objeto prepared statement
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
Prepared Statement
Prepared StatementPrepared Statement
Prepared Statement
 
Statement
Statement Statement
Statement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Statemment
StatemmentStatemment
Statemment
 
Statement
StatementStatement
Statement
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Statement
StatementStatement
Statement
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
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
 
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
 
Ado
AdoAdo
Ado
 
preparedstatement
preparedstatementpreparedstatement
preparedstatement
 

Último

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
 
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
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasAhmedMontaoSnchez1
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
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
 
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
 
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
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
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
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
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.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
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
 
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
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 

Último (20)

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
 
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
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnas
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
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
 
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
 
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
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.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
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
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.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
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
 
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
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 

Preparedstatement

  • 1. Alumnos: Eber Carrero Menor Joel Vasquez Esp
  • 2. PREPAREDSTATEMENT Las instancias de PreparedStatement contienen una sentencia SQL que ya ha sido compilada. Esto es lo que hace que se le llame ‘preparada’. La sentencia SQL contenida en un objeto PreparedStatement pueden tener uno o más parámetros IN. Un parámetro IN es aquel cuyo valor no se especifica en la sentencia SQL cuando se crea. PreparedStatement nos permite definir una sentencia SQL base, que nos sirve para modificar/insertar/buscar uno o varios registros con sólo cambiar los valores de los parámetros que especifiquemos.
  • 3.
  • 4. Uso del método PreparedStatement.executeQuery para obtener datos de DB2 Para obtener datos de una tabla utilizando una sentencia SELECT con marcadores de parámetros, utilice el métodoPreparedStatement.executeQuery. Este método devuelve una tabla de resultados en un objeto ResultSet. Una vez obtenida la tabla de resultados, debe utilizar métodos de ResultSet para desplazarse por la tabla de resultados y obtener los valores de cada columna de cada fila.
  • 5. METODOS:  Método executeUpdate Ejecuta la instrucción SQL determinada, que puede ser una instrucción INSERT, UPDATE o DELETE; o una instrucción SQL que no devuelve nada, como una instrucción DDL de SQL. Desde el controlador JDBC 3.0 de MicrosoftSQL Server, executeUpdate devolverán el número correcto de filas actualizado en una operación MERGE. Sintaxis: public int executeUpdate(java.lang.String sql) Parámetros
  • 6.  Uso de CallableStatement -Un objeto CallableStatement provee de una forma estándar de llamar a procedimientos almacenados de la base de datos. Un procedimiento almacenado se encuentra en la base de datos. La llamada al procedimiento es lo que contiene el objeto CallableStatement. -CallableStatement hereda los métodos de Statement, los cuales tratan sentencias SQL en general, y también hereda los métodos de PreparedStatement, que tratan los parámetros IN. Todos los métodos definidos para CallableStatement tratan los parámetros OUT o los aspectos de salida de los parámetros INOUT: registro de los tipos JDBC (tipos genéricos SQL) de los parámetros OUT, recuperación de valores desde ellos o chequear si el valor devuelto es un JDBC NULL.
  • 7.  Crear objetos CallableStatement -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 dos argumentos y no devuelve resultados. CallableStatement cstmt = con.prepareCall( "{call getTestData(?, ?)}"); donde los encajes ‘?’ son parámetros IN, OUT ó INOUT dependiendo del procedimiento getTestData.
  • 8.  Parámetros IN y OUT -El paso de valor para cualquier parámetro IN de un objeto CallableStatement se realiza mediante los métodos setXXX heredados de PreparedStatement. El tipo de el valor a pasar se determina por el método setXXX a usar (setFloat para pasar un valor float, y así). -Si el procedimiento almacenado devuelve parámetros OUT, el tipo JDBC de cada parámetro OUT debe ser registrado antes de que el objeto CallableStatement sea ejecutado (Esto es necesario porque algunas DBMS necesitan el tipo JDBC). CallableStatement cstmt = con.prepareCall( "{call getTestData(?, ?)}"); cstmt.registerOutParameter(1, java.sql.Types.TINYINT); cstmt.registerOutParameter(2, java.sql.Types.DECIMAL, 3); cstmt.executeQuery(); byte x = cstmt.getByte(1); java.math.BigDecimal n = cstmt.getBigDecimal(2, 3); De modo distinto a ResultSet, CallableStatement no tiene un mecanismo especial para recuperar grandes valores OUT incrementalmente.
  • 9.  EJEMPLOS Suponga que desea ejecutar esta sentencia de SQL: UPDATE EMPLOYEE SET PHONENO='4657' WHERE EMPNO='000010' El código siguiente crea el objeto Statement denominado stmt, ejecuta la sentencia UPDATE y devuelve en numUpd el número de filas que fueron actualizadas. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. Utilización de Statement.executeUpdateConnection con; Statement stmt; int numUpd; stmt = con.createStatement(); // Crear un objeto Statement 1 numUpd = stmt.executeUpdate("UPDATE EMPLOYEE SET PHONENO='4657' WHERE EMPNO='000010'"); // Ejecutar la actualización 2 stmt.close(); // Cerrar el objeto Statement 3 Ejemplo 01
  • 10. String empnum, phonenum; Connection con; PreparedStatement pstmt; ResultSet rs; pstmt = con.prepareStatement( "SELECT EMPNO, PHONENO FROM EMPLOYEE WHERE EMPNO=?"); // Crear un objeto PreparedStatement 1 pstmt.setString(1,"000010"); // Asignar valor a parámetro de entrada 2 rs = pstmt.executeQuery(); // Obtener tabla de resultados de la consulta 3 while (rs.next()) { // Posicionar el cursor 4 empnum = rs.getString(1); // Obtener el valor de la primera columna phonenum = rs.getString(2); // Obtener el valor de la primera columna System.out.println("Número de empleado = " + empnum + "Número de teléfono = " + phonenum); // Imprimir valores de columnas Ejemplo 02