DAM2 M06 UF2 Acceso a datos relacionales
Salta a la navegació
Salta a la cerca
volver a M06 Acceso a datos
Bases de datos embebidas
Ejercicios
- Instala sqlite. Crea la base de datos "ForHonor" con las siguientes tablas:
- Faccion: faccion_id (numérico, clave primaria), nombre_faccion (Varchar 15), lore (Varchar 200)
- Personaje: personaje_id (numérico, clave primaria), nombre_personaje (Varchar 15), ataque (numérico), defensa (numérico), faccion_id (numérico, clave foránea, referencia a Faccion)
- [EN GRUPO] Investiga sobre la base de datos "Apache Derby", realiza una presentación de entre 5 y 10 minutos sobre ella y realiza el ejemplo del ejercicio1
- [EN GRUPO] Investiga sobre la base de datos "HSQLDB", realiza una presentación de entre 5 y 10 minutos sobre ella y realiza el ejemplo del ejercicio1
- [EN GRUPO] Investiga sobre la base de datos "H2", realiza una presentación de entre 5 y 10 minutos sobre ella y realiza el ejemplo del ejercicio1
- [EN GRUPO] Investiga sobre la base de datos "DB4o", realiza una presentación de entre 5 y 10 minutos sobre ella y realiza el ejemplo del ejercicio1
Ejercicios avanzados
- Utilizando como base la clase utilizada para acceder a MySQL cambia lo necesario para acceder a una base de datos embebida.
Bases de datos relacionales
- Funcionamiento de un programa con JDBC:
- Importar las clases necesarias
- Cargar el driver JDBC
- Identificar el origen de datos
- Crear un objeto Connection
- Crear un objeto Statement
- Ejecutar una consulta con el objeto Statement
- Recuperar los datos del objeto ResultSet
- Liberar el objeto ResultSet
- Liberar el objeto Statement
- Liberar el objeto Connection
Recursos
- Driver para conectar desde Java con Mysql: java_MySql_Connector
- Nombre de la clase para el conector: com.mysql.cj.jdbc.Driver
- url de conexión: jdbc:mysql://localhost:puerto_MySql/nombre_base_datos
- url de conexión TimeServer Error (solo utilizar en caso de error con la Timezone del server: jdbc:mysql://localhost:puerto_MySql/nombre_base_datos?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Ejercicios
- Instala MySQL. Crea una base de datos "ForHonor" con las tablas del ejercicio 1. Añade al menos las 3 facciones y 3 personajes de la facción Caballeros, 2 de Vikingos y 2 de Samuráis. Crea un programa que se conecte a la base de datos por JDBC y muestre los registros de la tabla Personaje.
- Crea un programa que muestre los personajes de la facción Caballeros
- Crea un programa que muestre el personaje de la facción Samuráis con más ataque
- [EN GRUPO] Crea una base de datos con al menos 2 tablas y algunos registros. Indícale a otro grupo como conectar a tu base de datos PERO NO LE DES INFORMACIÓN SOBRE LA BASE DE DATOS EN SI. Utilizando me método getMetadata del objeto conexión (tipo Connection) y los métodos getTables y getColumns del objeto DatabaseMetaData obtén información sobre la base de datos del otro grupo.
- Modifica el ejercicio anterior para ampliar con más información sobre la base de datos y sus tablas. Como sus claves primarias, sus claves foráneas,etc
- Crea un programa que inserte un nuevo personaje en la tabla Personaje de la base de datos "ForHonor". Los datos del nuevo personaje serán introducidos por la línea de comandos
- Modifica el programa anterior para controlar que la facción del personaje existe y que los valores ataque y defensa son > 0, sino no se inserta y se muestra un mensaje de error descriptivo
- Crea un programa que cambie de facción a un personaje. Como parámetros el programa recibe el id del personaje y la facción destino
- Utilizando los métodos y la clase PreparedStatement (Sentencias preparadas) crea un programa que inserte un nuevo personaje en la tabla Personaje.
- Crea una "stored procedure" que aumente el ataque de todos los personajes de una facción. Como valores de entrada tendrá el id de la facción y el aumento de ataque. Ahora llama a la "stored procedure" de un programa Java.