Conexión de Proyecto Java a Base de Datos MySQL en IntelliJ IDEA

Clase 3 de 25Curso de Java Spring Data JPA: Bases de Datos

Resumen

¿Cuál es el modelo de entidad-relación de la pizzería?

Nuestro modelo de entidad-relación para la base de datos del proyecto de pizzería está compuesto por cuatro tablas fundamentales: pizza, pizza_order, order_item y customer. Aquí desglosamos brevemente cada una de estas tablas y sus funciones:

  • Tabla pizza:

    • ID de pizza: Identificador único de cada pizza.
    • Nombre y descripción: Información detallada de la pizza.
    • Precio: Tipo decimal 5,2 (cinco dígitos en total, dos después del punto).
    • Atributos booleanos: Identificación de si la pizza es vegetariana, vegana o está disponible mediante el uso de columnas tinyint.
  • Tabla pizza_order:

    • ID de orden: Identificador único de cada orden.
    • Relación con customer: Usando ID customer como clave foránea.
    • Fecha de la orden: Registro temporal de la creación de la orden.
    • Valor total: Suma del costo de todas las pizzas en la orden.
    • Método de entrega: Almacena en un carácter si la orden es para llevar, recoger o para comer en el lugar.
    • Notas adicionales: Registro para observaciones específicas del cliente sobre la orden.
  • Tabla customer:

    • ID de cliente: Identificación única de cada cliente.
    • Datos del cliente: Incluye nombre, dirección, email y número de teléfono.
  • Tabla order_item:

    • Relación uno a uno con pizza: Cada ítem de la orden tiene un enlace a una pizza específica.
    • Relación uno a muchos con pizza_order: Una orden puede tener múltiples ítems.
    • Claves primarias: Compuestas por ID item y ID order.
    • Cantidad y precio: Manejo de cantidades y ajustes de precios según la cantidad de pizzas pedidas.

¿Cómo conectar el proyecto a la base de datos?

Para conectar nuestro proyecto a una base de datos MySQL desde IntelliJ IDEA, debemos editar el archivo application.properties dentro del directorio resources. Aquí se deben poner cuatro instrucciones esenciales para establecer la conexión:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/fixeria?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=admin

¿Qué parámetros son esenciales en application.properties?

  • spring.datasource.driver-class-name: Especifica el tipo de base de datos.
  • spring.datasource.url: Dirección y nombre de la base de datos junto con la instrucción createDatabaseIfNotExist=true para MySQL.
  • spring.datasource.username y password: Credenciales de acceso a la base de datos.

Configuración avanzada: ¿Cómo utilizar Hikari CP y Spring JPA?

¿Para qué sirve Hikari CP?

Hikari CP es un gestor automático de conexiones a base de datos, optimizando la cantidad de conexiones según la concurrencia de usuarios en la aplicación. Ofrece un mejor rendimiento y es fundamental para la eficiencia y escalabilidad del sistema.

¿Cómo configurar Spring JPA?

Para gestionar dinámicamente el esquema de base de datos, podemos añadir y configurar Spring JPA:

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
  • spring.jpa.hibernate.ddl-auto:
    • update: Se adapta al esquema al sincronizar cambios sin perder datos.
  • spring.jpa.show-sql: Permite visualizar en la consola las acciones SQL realizadas por nuestra aplicación.

Estas configuraciones permiten que la estructura de las bases de datos se actualice automáticamente a partir de las entidades definidas en nuestro proyecto. Además, habilitar show-sql nos ayuda a verificar y analizar cómo nuestras acciones afectan a la base de datos en tiempo real.

¿Cómo adaptar la nueva interfaz de IntelliJ IDEA?

Finalmente, para aprovechar las actualizaciones de IntelliJ IDEA en su interfaz, podemos activar la "New UI" en Appearance & Behavior. Esto nos permitirá familiarizarnos con una interfaz más moderna y eficiente. Simplemente habilita la interfaz, aplica los cambios y reinicia IntelliJ IDEA.

Utilizar estas opciones no solo mejora la experiencia de desarrollo, sino que también optimiza la gestión del proyecto en entorno de bases de datos. Al seguir aprendiendo y explorando nuevas herramientas y configuraciones, potencias tu capacidad para crear aplicaciones robustas y eficientes. ¡Sigue adelante y explora más en este emocionante viaje de aprendizaje!