Ejercicios de actualización y sentencias preparadas
Sentencias preparadas
En este ejercicio vamos a trabajar con las sentencias preparadas. Vamos a usar un par de métodos para consultar usuarios por su DNI. Hay que crear la sentencia preparada y guardarla en el DAO. Luego usaremos un método para consultar. Cread en el DAO de usuario los siguientes métodos:
- public void preparaUsuarioDNI (): creará la sentencia preparada, dejando como argumento el DNI.
- public Usuario getUsuarioDNI (int dni): se le pasa el DNI del usuario a buscar y devuelve el objeto Usuario correspondiente. Se usará la sentencia preparada anteriormente creada.
En la clase Consultas se creará un método que llamará a preparaUsuarioDNI y luego irá llamando a getUsuarioDNI, tal como se hace en la plantilla.
Como ejercicio optativo se propone hacer un método para consultar los hoteles (y/o vuelos) dentro de un rango de precios
Funciones almacenadas
Vamos a llamar a una función creada disponible en MySQL. Primero es crear la función en MySQL. Ejecutamos la aplicación MySQL Administrator. Seleccionamos Catalogs y seleccionamos nuestra base de datos, viajes. Seleccionamos la solapa Stored Procedures y pinchamos en el botón para crear un nuevo procedimiento. Le damos el nombre y le decimos que queremos crear una función. Nos aparecerá un editor para introducir la definición de la función. El código a introducir es el siguiente:
CREATE FUNCTION `miFunc`(pr int) RETURNS int(11) BEGIN declare a int; select count(*) into a from hotel count where precio<pr; return a; END
Esta función devuelve el número de hoteles cuyo precio es inferior al pasado por parámetro. Este ejercicio consiste en llamar a esta función desde Java. Cread un método en la clase Consultas que se llamará llamaFuncion() que pedirá el precio a buscar y mostrará el número de hoteles cuyo precio sea inferior al indicado. La llamada al procedimiento se tiene que realizar desde el DAO correspondiente.