Diferència entre revisions de la pàgina «DAM2 M06 UF2 Acceso a datos relacionales»

De Wiket
Salta a la navegació Salta a la cerca
 
(Hi ha 13 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
'''volver a''' [[M06 Acceso a datos]]
 
=Bases de datos embebidas=
 
=Bases de datos embebidas=
 
==Ejercicios==
 
==Ejercicios==
Línia 15: Línia 16:
 
<li>[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
 
<li>[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
 
</li>
 
</li>
 +
</ol>
 +
'''Ejercicios avanzados'''
 +
<ol start="6">
 +
<li>Utilizando como base la clase utilizada para acceder a MySQL cambia lo necesario para acceder a una base de datos embebida.
 +
</li>
 +
</ol>
 +
=Bases de datos relacionales=
 +
<ul>
 +
<li>Funcionamiento de un programa con JDBC:
 +
<ol>
 +
<li>Importar las clases necesarias</li>
 +
<li>Cargar el driver JDBC</li>
 +
<li>Identificar el origen de datos</li>
 +
<li>Crear un objeto Connection</li>
 +
<li>Crear un objeto Statement</li>
 +
<li>Ejecutar una consulta con el objeto Statement</li>
 +
<li>Recuperar los datos del objeto ResultSet</li>
 +
<li>Liberar el objeto ResultSet</li>
 +
<li>Liberar el objeto Statement</li>
 +
<li>Liberar el objeto Connection</li>
 +
</ol>
 +
</li>
 +
</ul>
 +
==Recursos==
 +
* Driver para conectar desde Java con Mysql: [https://dev.mysql.com/downloads/connector/j/ 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==
 +
<ol>
 
<li>
 
<li>
 
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.
 
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.
 +
</li>
 +
<li>Crea un programa que muestre los personajes de la facción Caballeros
 +
</li>
 +
<li>Crea un programa que muestre el personaje de la facción Samuráis con '''más ataque'''
 +
</li>
 +
<li>[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.
 +
</li>
 +
<li>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
 +
</li>
 +
<li>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
 +
</li>
 +
<li>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</li>
 +
<li>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
 +
</li>
 +
<li>Utilizando los métodos y la clase PreparedStatement (Sentencias preparadas) crea un programa que inserte un nuevo personaje en la tabla Personaje.
 +
</li>
 +
<li>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.
 
</li>
 
</li>
 
</ol>
 
</ol>

Revisió de 15:59, 10 des 2018

volver a M06 Acceso a datos

Bases de datos embebidas

Ejercicios

  1. 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)
    Busca información de "For Honor" y crea al menos las 3 facciones (Caballeros, Vikingos, Samuráis) y personaje de cada facción
  2. [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
  3. [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
  4. [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
  5. [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

  1. 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:
    1. Importar las clases necesarias
    2. Cargar el driver JDBC
    3. Identificar el origen de datos
    4. Crear un objeto Connection
    5. Crear un objeto Statement
    6. Ejecutar una consulta con el objeto Statement
    7. Recuperar los datos del objeto ResultSet
    8. Liberar el objeto ResultSet
    9. Liberar el objeto Statement
    10. 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

  1. 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.
  2. Crea un programa que muestre los personajes de la facción Caballeros
  3. Crea un programa que muestre el personaje de la facción Samuráis con más ataque
  4. [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.
  5. 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
  6. 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
  7. 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
  8. 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
  9. Utilizando los métodos y la clase PreparedStatement (Sentencias preparadas) crea un programa que inserte un nuevo personaje en la tabla Personaje.
  10. 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.