Bases de datos con JDBC
 

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.