SpringBoot 4. Crear Base de Datos

La Base de Datos la vamos a crear en MySQL. Si no tiene instalado MySQL se puede apoyar en la liga https://arieloliva.com/java-ee-3-instalar-base-de-datos-mysql . Aquí también se explica como instalar MySQL Workbench. Con MySQL Workbench podemos generar una Base de Datos mediante un modelo. Se puede utilizar cualquier otra herramienta para crear la Base de Datos en MySQL o solo ejecutar el script al final de esta entrada.

Crear modelo en MySQL Workbench

Abrimos MySQL Workbench y seleccionamos la instancia local.

Selección_153

Pedirá la contraseña de root.

Selección_154

Entramos a la pantalla principal. Clic en File -> New Model.

Selección_155

Con + crea un nuevo esquema y con lo eliminamos. Creamos el esquema kanban. Sólo escribimos el Name, los demás parámetros se dejan predeterminados. Doble Clic en Add Diagram.

Crear las tablas y sus relaciones

Aquí ya podemos agregar las tablas de la Base de Datos. Damos clic en Place a New Table. y con otro clic sobre el espacio de trabajo se creara la tabla.

Selección_175

Doble clic en la tabla y se mostraran su propiedades en la parte inferior. Seleccionamos el nombre Columns. (Lo mas recomendable es que el nombre de una tabla sea en singular, pero Column es una palabra reservada de la Base de Datos)

Y en la pestaña Columns agregamos los campos id y titulo.

Nombre Tipo de dato PK(Primary Key) NN (No Null) UQ (Unique Key) AI(Autoincrementar)
id INT Si Si Si Si
titulo VARCHAR(100) No Si No No

 

Ahora creamos la tabla Article  con los campos id, nombre, titulo y descripcion.

Nombre Tipo de dato PK NN UQ AI
id INT Si Si Si Si
nombre VARCHAR(100) No Si No No
titulo VARCHAR(100) No Si No No
descripcion VARCHAR(250) No No No No

Relacionamos la tablas de 1 a muchos. Damos clic en Place a New 1:n Non-Identifying.

Selección_167

Clic en la tabla Article y luego clic en la tabla Columns.

Generar Base de Datos

Ya tenemos nuestro modelo ahora vamos a crear la Base de Datos; Database -> Forward Engineer… Seleccionamos la instancia Local y la contraseña. Clic en Next.

Selección_169

Todo predeterminado y clic en Next.

Selección_170

Debe estar habilitado Export MySQL Table Object. Clic en Next.

Selección_171

Se muestra el script de creación. Clic en Next.

Clic en Close.

Selección_173

Desde la pestaña de la instancia actualizamos los esquemas, seleccionamos kanban  y ejecutamos los querys:

select * from Columns;
select * from Article;

En la parte inferior se debe mostrar que las consultas fueron exitosas, indicando que las tablas ya existen.

Introducir datos

Introducimos datos en las tablas. Doble clic en la celda -> Teclear datos-> Clic en Apply -> Confirmar consultas. El id es unico no se puede repetir.

Para el caso de la tabla Article. El campo Columns_id debe coincidir con un id de un Columns, si no es así se muestra un error de foreign key.

Script para crear la Base de Datos

Por si solo quieres ejecutar el script y ahorrarte toda las creación del modelo.

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema kanban
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `kanban` DEFAULT CHARACTER SET latin1 ;
USE `kanban` ;

-- -----------------------------------------------------
-- Table `kanban`.`Columns`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `kanban`.`Columns` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `titulo` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `id_UNIQUE` (`id` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;


-- -----------------------------------------------------
-- Table `kanban`.`Article`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `kanban`.`Article` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(100) NOT NULL,
  `titulo` VARCHAR(100) NOT NULL,
  `descripcion` VARCHAR(250) NULL DEFAULT NULL,
  `ColumnId` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `id_UNIQUE` (`id` ASC),
  INDEX `fk_Article_Column_idx` (`ColumnId` ASC),
  CONSTRAINT `fk_Article_Column`
    FOREIGN KEY (`ColumnId`)
    REFERENCES `kanban`.`Columns` (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

 

Java EE 5. Crear Base de Datos MySQL

Vamos a crear una Base de Datos muy sencilla para continuar con el desarrollo JEE.

Crear modelo en MySQL Workbench

Abrimos MySQL Workbench y seleccionamos la instancia local.

Selección_153

Pedirá la contraseña que seleccionamos en la instalación pasada.

Selección_154

En la pantalla principal ir a File -> New Model.

Selección_155

Doble Clic en Add Diagram.

Selección_156

Crear las tablas y sus relaciones

Aquí ya podemos agregar las tablas de la Base de Datos. Damos clic en Place a New Table. y con otro clic sobre el espacio de trabajo se creara la tabla.

Selección_175

Doble clic en la tabla y se mostraran su propiedades en la parte inferior. Seleccionamos el nombre Usuarios.

Selección_159

Y en la pestaña Columns agregamos los campos id, user y password.

Nombre Tipo de dato Clave primaria No acepta null
id INT Si Si
user VARCHAR(10) No No
password VARCHAR(10) No No

Selección_164

Ahora creamos la tabla Logins_users.

Nombre Tipo de dato Clave primaria No acepta null
id INT Si Si
date DATETIME No No
status VARCHAR(5) No No

Selección_166

Relacionamos la tablas de 1 a muchos. Damos clic en Place a New 1:n Non-Identifying.

Selección_167

Clic en la tabla Logins_users y finalmente clic en la tabla Users.

Selección_168

Generar Base de Datos

Ya tenemos nuestro modelo ahora vamos a crear la Base de Datos; Database -> Forward Engineer… Seleccionamos la instancia Local y la contraseña. Clic en Next.

Selección_169

Todo predeterminado y clic en Next.

Selección_170

Debe estar habilitado Export MySQL Table Object. Clic en Next.

Selección_171

Se muestra el script de creación. Clic en Next.

Selección_172

Clic en Close.

Selección_173

Desde la pestaña de la instancia seleccionamos el esquema mydb  y ejecutamos los querys:

select * from Users;
select * from Logins_users;

En la parte inferior se debe mostrar que las consultas fueron exitosas, indicando que las tablas ya existen.

Selección_174

 

Java EE 3. Instalar Base de Datos MySQL

Antecedentes

Para el proyecto vamos a utilizar la base de datos MySQL y MySQL workbench, que es una herramienta visual para el diseño de Base de Datos de MySQL.

Instalación de MySQL

Ir al link http://dev.mysql.com/downloads/mysql/  y descargar la versión correspondiente al Sistema Operativo y la arquitectura del procesador.

Para la instalación en Ubuntu, que es mi caso, lo más convenientes es instalarlo por apt.

  1. Descargar mysql-apt-config_x.x.x-x_all.deb desde el link http://dev.mysql.com/downloads/repo/apt/
  2. Ejecutarlo mediante linea de comandos:
    sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb

    apt

  3. Seleccionar MySQL Server (mysql-5.7) y clic en Adelante.apt3
  4. Seleccionar mysql-5.7 y clic en Adelante. Finalmente selecciona aplicar para que se instale.apt3
  5.  Desde la consola ejecute:
    sudo apt-get install mysql-server

    Capture S.

    apt4

  6. Seleccione la contraseña para el usuario root.apt5
  7. Confirme la contraseña para el usuario root..apt6
  8. Después de unos momentos se instala la Base de Datos.apt7
  9. Para probar que MySQL se esta ejecutando correctamente podemos ejecutar:
    sudo service mysql status

    apt8Otro comando útiles son:

    sudo service mysql stop
    
    sudo service mysql start

Instalación de MySQL Workbench

Ir al link http://dev.mysql.com/downloads/workbench/  y descargar la versión correspondiente al Sistema Operativo y la arquitectura del procesador.

  1. Para el caso de Ubuntu se descargar el archivo mysql-workbench-community-6.3.6-1ubu1404-amd64.deb. Clic en el archivo para ejecutarlo. Desde el Centro de software de Ubuntu clic en instalar.apt9
  2. Después de unos momentos se mostrara que la instalación fue correcta.apt10
  3. Al ejecutar la aplicación reciente instalada nos muestra la siguiente ventana. Aquí se ve la instancia del servidor MySQL que acabamos de instalar.apt11
  4. Al dar clic sobre la instancia nos pedirá la contraseña del root y entraremos a la pantalla principal de MySQL Workbench.apt12