Vous êtes sur la page 1sur 9

CFGS

DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

ACCESO A DATOS

PERSISTENCIA EN BDR-BDOR-BDOO
PAC 2: Bases de datos relacionales_RESPUESTAS

Gregorio Marañón Nieto

09/11/2017
*Para esta práctica os hará falta instalar el gestor de bases de datos MySQL además
del conector necesario para su integración con Java. *

1. Crea usando MySQL, las bases de datos que contiene las tablas DEPARTAMENTOS y
EMPLEADOS tal y como se define a continuación. El nombre de la base de datos será
DEPT1, el usuario y la contraseña empleado.

TABLAS DEPARTAMENTOS EMPLEADOS


- dept_no numérico, no nulo, positivo, - emp_no numerico, no nulo, positivo,
clave primaria clave primaria
- dnombrebre varchar(14), no nulo - apellido varchar(10), no nulo
- lugar varchar(14) - oficio varchar(10)
- jefe numerico
- fecha_alta DATE
- salario numerico, positivo
- comision numerico, positivo
- dept_no numerico, no nulo, referencias
a departamentos(dep_no)

• Creamos la base de datos dept1.

• Nos conectamos a ella (doble click)


• Creamos las tablas.

• Y creamos el usuario.

2. Crea una función en Java encargada de establecer la conexión con la base de datos
DEPT1.

Antes de nada, debemos agregar el conector a nuestro proyecto.


En las opciones de nuestro proyecto, en la pestaña de librerías añadimos el conector de
mysql.
Una vez hecho esto vamos a crear una clase personalizada que se encargará de realizar
todas las acciones. En mi caso se llamará MyConector. Donde le pasaremos el usuario y
contraseña y se conectará automáticamente desde el constructor de la clase.

3. Desarrolla una función en Java encargada de introducir datos en las tablas


DEPARTAMENTOS y EMPLEADOS y, desde el Main, introduce los siguientes datos en
cada una de las tablas.

Esta función la implementaremos como un método de nuestra clase, al que le pasamos los
datos y se introducen directamente en la base de datos.

TABLA DEPARTAMENTOS y EMPLEADOS (Datos a meter)


• Funciones para introducir datos.

• Podemos tener varios métodos dependiendo del número de variables


que le pasemos. En este caso a este método no le pasamos “jefe”.
• De momento nuestro main quedaría de la siguiente forma, algunas líneas
están comentadas para no repetir la inserción de registros.

4. Crea una función Java encargada de insertar nuevos empleados en la tabla


EMPLEADOS. Antes de insertar un nuevo registro, esta nueva función debe verificar
que se puede realizar la inserción, es decir, se comprueba que los nuevos valores
introducidos son consistentes con los tipos, valores numéricos no nulos, existe el
departamento y existe el jefe. Si se cumplen estas condiciones, entonces la fila es
insertada en la base de datos y se visualiza un mensaje sobre la pantalla indicándolo.
En caso contrario, se muestra la razón por la que el registro no ha podido ser
insertado.
Prueba esta función sobre la tabla EMPLEADOS haciendo unas pocas llamadas con
registros válidos y no válidos desde el Main.

• Primero nos creamos un método que nos devuelve si existe un “jefe” con el
id que se pasa por parámetro.
• Como a la hora de crear la base de datos creamos las claves primarias con la
cláusula auto_increment, ahora cada vez que ejecutamos nuestro código
las claves de los empleados cambian, por tanto, necesitamos un método
para obtener la clave de un empleado a través de su apellido, porque este
parámetro nunca va a ser null.

Nunca un empleado va a tener como clave primaria el valor ‘0’ por tanto si al hacer
la consulta no entrara en el bucle porque no hubiera coincidencias devolvería ‘0’ y
al tener controlada la inserción si no existe el jefe, como no hay ningún empleado
‘0’ no se insertaría.
• Hacemos el método equivalente a jefeExists() pero para ‘dept_no’.

• El nuevo método insertar sería el siguiente.

• Probamos el siguiente conjunto de inserciones. Y el resultado es correcto.

*Ni el “MAYER” con jefe erróneo ni “MACHADO” con dept ‘15’ se registran.
5. Crea una nueva función, que se llama al final de la función principal, que muestre la
nueva tabla de empleados.

6. Cierra la conexión con la base de datos DEPT1.

Vous aimerez peut-être aussi