¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Java y Eclipse
  3. Base de datos MySQL
Extrait - Java y Eclipse Desarrolle una aplicación con Java y Eclipse (2a edición)
Extractos del libro
Java y Eclipse Desarrolle una aplicación con Java y Eclipse (2a edición)
1 opinión
Volver a la página de compra del libro

Base de datos MySQL

Introducción

Este capítulo necesita conocimientos generales sobre las bases de datos y el lenguaje SQL (Structured Query Language).

Se utiliza la aplicación XAMPP, acrónimo de X Apache MySQL Perl PHP. Así se dispone de un servidor, una base de datos relacional y una interfaz gráfica de administración. Los lenguajes Perl y PHP no son útiles en el ámbito del proyecto de gestión Oxygen. Existen versiones de XAMPP para Windows, Linux, Mac OS y Solaris.

También puede elegir Wamp.

SQL y las bases de datos relacionales

1. Las bases de datos relacionales

Una base de datos permite almacenar información de manera persistente en estructuras dedicadas a este efecto. Estas estructuras se llaman tablas. Cada tabla de una base de datos tiene por vocación almacenar información similar entre sí, como por ejemplo la lista de clientes de una empresa. Los pedidos estarán, por su parte, almacenados en una tabla diferente.

Una tabla define un número determinado de columnas, una por cada información a guardar. Por ejemplo la tabla de clientes contendrá una columna con los apellidos del cliente, otra para almacenar su nombre, otra para su e-mail, otra para la fecha de creación del cliente en el sistema... Estas columnas tienen todas un nombre único dentro de la tabla.

Cada tabla contendrá datos. Se almacenarán estos datos en una fila. Por ejemplo la tabla de clientes contendrá tantas filas como clientes existan, cada fila almacenará los datos del cliente en la columna apropiada.

Con el fin de identificar de manera única a un cliente, se dedicará una columna para almacenar este identificador. Se habla de este identificador como una clave primaria. Una clave primaria debe obligatoriamente ser única dentro de los valores de esta columna para un tabla dada.

Habitualmente, existen varias tablas en una base de datos, ligadas entre ellas: se debe poder en un sistema encontrar todos los pedidos de un cliente dado. Se habla comúnmente de una relación entre los datos (de donde proviene el término de bases de datos relacionales). Esta relación se crea añadiendo una columna adicional en una de estas tablas donde se almacena la clave primaria de una fila de otra tabla. Se llama a esta columna habitualmente clave foránea. Así la tabla...

Instalación y configuración del servidor XAMPP

Para una instalación o actualización, puede ir a los distintos sitios web de descarga (por ejemplo, https://www.apachefriends.org/index.html). Existen varios kits de instalación. El más sencillo es el que conlleva una instalación. La versión utilizada durante la escritura de este libro es XAMPP 7.1.8-0-VC14 para win32.

Las siguientes explicaciones y capturas de pantalla se corresponden con esta versión. Las operaciones a llevar a cabo para versiones más recientes pueden ser diferentes.

 Descargue el instalador para Windows y haga doble clic en el archivo descargado para iniciar la instalación.

 En Windows, aparece una alerta. Haga clic en OK.

images/9-8-1.png

 Después puede elegir los componentes a instalar. Deje las opciones por defecto. Si no dispone de suficiente espacio en su disco duro, elija solamente Apache, MySQL y phpMyAdmin.

images/9-8-2.png

 La carpeta por defecto para la instalación es C:\xampp. Puede elegir otra carpeta. Haga clic después en el botón Next.

images/9-8-3.png

 Prosiga hasta llegar a la pantalla siguiente. Haga clic en Next para arrancar el proceso de instalación.

images/9-8-4.png

 Si todo se ha ejecutado bien, debería llegar a la siguiente pantalla. Haga clic en el botón Finish.

images/9-8-5.png

 Acceda al panel de control situado debajo a la derecha de su pantalla y haga clic en los botones Start para arrancar Apache y MySQL.

images/9-8-6.png

 Haga clic después en el botón Admin de la opción MySQL.

Se abre una página web, empezando la dirección por http://localhost/phpmyadmin....

JDBC

JDBC (Java DataBase Connectivity) permite que las aplicaciones clientes desarrolladas en Java accedan a bases de datos relaciones. JDBC provee todas las clases útiles para gestionar estas operaciones.

JDBC es una API para la cual existen cuatro tipos de drivers que difieren en rendimiento y portabilidad.

  • Tipo 1: el primer tipo está basado en ODBC. Las llamadas JDBC se convierten en este caso en llamadas ODBC. Este las transmite al SGBD que ejecuta las consultas recibidas. De la misma manera, el conjunto de resultados devueltos utilizan la pasarela o puente JDBC/ODBC entre la aplicación Java y la base de datos.

images/08EIT11.png

Las principales operaciones realizadas son las que siguen:

1. Carga del driver

2. Establecimiento de la conexión mediante la pasarela JDBC/ODBC con la base de datos

3. Ejecución de las consultas SQL por el SGBD MySQL

4. Recuperación de los resultados (para consultas de selección)

5. Cierre de los resultados (si existen)

6. Cierre de la conexión

  • Tipo 2: se trata de un driver del una parte está escrita en Java y la otra en el lenguaje del SGBD. Las llamadas JDBC se convierten en llamadas nativas. Su utilización necesita la instalación de la parte nativa en el cliente. Otros inconvenientes: la pérdida de portabilidad del código, lo que excluye su uso con applets.

images/08eit20.png
  • Tipo 3: se trata de un driver totalmente escrito en Java que se comunica con el SGBD mediante una aplicación middleware....

JPA

Java Persistence API o JPA es una interfaz de programación de aplicaciones que permite facilitar el acceso y la codificación a datos persistentes por ejemplo en una base de datos.

JPA permite crear un modelo del dominio (clases) que servirá de interfaz entre la aplicación y los datos en la base de datos. Se escribirán las consultas hacia la base de datos en lenguaje JPQL (JPA Query Language) que permite escribir consultas SQL en forma de objeto. Sin embargo sigue siendo posible escribir las consultas en SQL.

Gracias a anotaciones del package javax.persistence es posible establece correspondencias entre las propiedades de estos objetos y las tablas y columnas de la base de datos.

Incluso es posible con este modelo de dominio crear completamente la estructura de la base de datos: las tablas y las columnas.

JPA es por lo tanto una API de alto nivel que permite concentrarse en el modelo del dominio y enmascarar los detalles técnicos de la persistencia en una base de datos.

Ejemplo de anotación

package entidad;  
  
import java.util.Date;  
  
import javax.persistence.Basic;  
import javax.persistence.CascadeType;  
import javax.persistence.Entity;  
import javax.persistence.Id;  
import javax.persistence.ManyToOne;  
import javax.persistence.Temporal;  
import javax.persistence.TemporalType;  
  ...

Instalación de los drivers Connector/J

Como se indica en el sitio web de MySQL, se trata del tipo de driver JDBC oficial para las bases de datos MySQL. Es un driver JDBC de tipo 4.

Se usará para el proyecto Oxygen.

 En el sitio web de MySQL existe un archivo zip llamado mysql-connector-java-5.1.43.zip, disponible para la versión 5.1.43. Descárguelo desde la dirección https://dev.mysql.com/downloads/connector/j y extráigalo.

El driver JDBC que nos interesa es el archivo mysql-connector-java-5.1.43-bin.jar.

La documentación y las fuentes de las clases del driver están también disponibles en esta carpeta.

Los tests con este driver se realizarán desde la aplicación Java.

Para evitar tener enlaces rotos, puede copiar el driver en una carpeta del proyecto (por ejemplo lib/).

Aquí tiene el procedimiento de instalación bajo Eclipse:

 En Eclipse, haga clic con el botón derecho en su proyecto y elija Properties.

 Seleccione después Java Build Path y la pestaña Libraries.

 Haga clic en el botón Add External JARs, acceda a la carpeta que contiene el driver y añádalo.

 Haga clic en la pestaña Order and Export, marque la opción correspondiente al driver y valide.

Drivers de tipo 2 y 3

Para instalar un driver de tipo 2 o 3, descargue y descomprima el archivo jar. Siga después los mismos pasos que para el driver...

Instalación de EclipseLink

EclipseLink es una de las implementaciones disponibles de JPA. Puede descargar los archivos binarios en la dirección http://eclipse.org/eclipselink/downloads/.

A la hora de escribir este libro, la versión 2.7.0 era la última disponible.

 Descargue el instalador zip desde el sitio web.

images/9-8-17.png

 Descomprima el archivo y copie el contenido de la carpeta eclipselink/jlib dentro de lib/eclipselink del proyecto.

 Agregue los archivos eclipselink.jar y jpa/javax.persistence_2.2.0.v201708071007.jar en el Build Path del proyecto, como se ha visto anteriormente. Añada también estos archivos jar en la pestaña Order and Export.

images/9-8-18.png

El proyecto contiene ahora todos los bloques necesarios para acceder a la base de datos.

Queda sin embargo configurar el proyecto para que sepa a qué base de datos acceder.

 Cree una carpeta META-INF en src/main/resources haciendo clic con el botón derecho después de seleccionar la carpeta src/main/resources, y seleccione New - Folder. En Folder Name, teclee «META-INF» (sin comillas dobles). Haga clic en Finish.

 En esta carpeta, cree un nuevo archivo llamado «persistence.xml» (sin comillas dobles), seleccionándolo en el explorador. Haga después un clic derecho y seleccione New - File. Después teclee «persistence.xml» (sin comillas dobles) en File Name. Haga clic después en Finish.

El archivo se abre en la zona de código.

 En esta zona, teclee el siguiente contenido y guarde el archivo pulsando [Ctrl] S:

<persistence version="2.1" 
     ...