prepared statement
TRANSCRIPT
“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU”
INTEGRANTES:
Rosaliny Yonely Rivera Salazar.
Sandrita Rafael Estela.
DOCENTE:
Marco Aurelio Porro Chulli.
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.
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
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.
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
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
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();