prepared statement

8
“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU” INTEGRANTES: Rosaliny Yonely Rivera Salazar. Sandrita Rafael Estela. DOCENTE: Marco Aurelio Porro Chulli.

Upload: rosaliny-yonely-rivera-salazar

Post on 07-Feb-2017

22 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Prepared Statement

“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU”

INTEGRANTES:

Rosaliny Yonely Rivera Salazar.

Sandrita Rafael Estela.

DOCENTE:

Marco Aurelio Porro Chulli.

Page 2: Prepared Statement

PreparedStatement

Es una sentencia SQL de base de datos precompilada. Al estar precompilada, su ejecución será más rápida que una SQL normal, por lo que es adecuada cuando vamos a ejecutar la misma sentencia SQL (con distintos valores) muchas veces.

Se utiliza para enviar sentencias SQL pre compiladas con uno o más parámetros.

PreparedStatement tiene un grupo de métodos que fijan los valores de los parámetros IN, los cuales son enviados a la base de datos cuando se procesa la sentencia SQL; las instancias de PreparedStatement extienden, es decir, heredan de Statement y por tanto heredan los métodos de Statement.

Page 3: Prepared Statement

Para poder usar una

Prepared Statement desde

java, es necesario que

tanto la base de datos

como el driver java que

usemos soporten las

Prepared Statement.

El código de

PreparedStatement

puede ser como este

psInsertar =

conexion.prepareStatem

ent( "insert into person

values (null,?,?,?)");

Uso d

e Pr

epar

edSt

atemen

t

Page 4: Prepared Statement

Crear el PreparedStatement

Una vez establecida la conexión, podemos crear el PreparedStatement llamando al método prepareStatement() de la Connection.

Un buen sitio para guardar este PreparedStatement puede ser un atributo de la clase.

Cada vez que vamos a usarlo creamos un PreparedStatement nuevo, tampoco conseguiremos la mejora de eficiencia.

Es importante guardar este PreparedStatement en algún sitio al que podamos acceder cuando lo necesitemos.

Page 5: Prepared Statement

Método executeUpdate():

Clase que representa una sentencia precompilada de SQL. 

Uso de PreparedStatement.executeUpdate para una sentencia de SQL con marcadores de parámetros: Connection con;PreparedStatement pstmt;int numUpd;

pstmt = con.prepareStatement( "UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=?"); // Crear un objeto PreparedStatement 1 pstmt.setString(1,"4657"); // Asignar valor al primer parámetro 2 pstmt.setString(2,"000010"); // Asignar valor al segundo parámetro de entrada numUpd = pstmt.executeUpdate(); // Ejecutar la actualización 3 pstmt.close(); //Cerrar el objeto PreparedStatement 4  

Page 6: Prepared Statement

Uso de CallableStatement

Son procedimientos almacenados al igual que las

PreparedStatements y las consultas simples se hacen sobre la conexión, en este

caso con el método prepareCall() que nos

devuelve un CallableStatement,

El procedimiento almacenado además de ir entre comillas por

ser un string tiene que ir también entre llaves y tiene el

siguiente formato “{call nombre_procedimiento(?,?,…)}”

Los parámetros de entrada como con las

PreparedStatements se definen con los métodos

setXXX();

El procedimiento se ejecuta cuando llamamos al método

execute, y como es lógico en el momento en el que se ejecute

tienen que estar definidos todos los parámetros tanto de

entrada como de salida

Page 7: Prepared Statement

Ejemplo de PreparedStatement:

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();

Page 8: Prepared Statement