Mostrando las entradas con la etiqueta BACKEND. Mostrar todas las entradas
Mostrando las entradas con la etiqueta BACKEND. Mostrar todas las entradas

jueves, 4 de mayo de 2023

TO DO LIST(CRUD): JAVA+SPRINGBOOT+ MYSQL-PARTE I

Saludos a todos 

Le solicitamos a ChatGPT que nos dijera cómo hacer un todo List utilizando Java, Spring Boot y MySQL y nos dio la siguiente lista de tareas las cuales iremos ejecutando y explicando a detalle.

Este ejercicio to do list nos permite realizar un CRUD: Create (Crear), Read (Leer), Update (Actualizar) y Delete (Borrar) información de una base de datos. Nos centraremos en el backend del ejercicio y en la segunda parte implementaremos el Front End de la aplicación.

Puedes ingresar al GITHUB y descarga aquí el código

  1. Crear un proyecto Spring Boot en el IDE de preferencia.
Para este punto, debo generar un proyecto en Spring Boot con dependencias MySQL Driver, Spring Data JPA y Spring Web.
Utilizaré Intellij IDEA como mi IDE de preferencia.

2. Configurar la conexión a la base de datos MySQL en el archivo "application.properties".

En este caso ChatGPT se saltó un paso en la creación de la base de datos, por lo que ingresaré sobre este mismo Ítem, la creación y la configuración de la misma.

  • CREACIÓN BD: Esta base de datos será creada con MySQL Workbench 8.0 y tendrá columnas: (id, titulo, descripción y fecha). Tener en cuenta el tipo de dato de cada atributo.

  • CONEXIÓN BD: Se requiere conectarla a un servidor, en este caso sigo usando MySQL Server, el cuál está dentro de nuestro programa MySQL Workbench 8.0
  • CONFIGURACION: Para la configuración de "application.properties". Tener presente que esta configuración sólo aplica para MySQL, si tienes otro gestor de BD debes consultar la configuración.
spring.datasource.url=jdbc:mysql://localhost:3306/todolist
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
  1. Crear la entidad "Tarea" que representará las tareas en la base de datos.
Tener presente que nuestra entidad estará incluida en un paquete nombrado Entity y la entidad la llamé TodolistEntity y tiene el siguiente código:

package com.example.demo.Entity;

import jakarta.persistence.*;

import java.time.LocalDate;

@Entity
@Table(name = "todolist")
public class TodolistEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "titulo")
private String titulo;
@Column(name = "descripcion")
private String descripcion;
@Column(name = "fecha")
private LocalDate fecha;

public TodolistEntity(){

}

public TodolistEntity(String titulo, String descripcion, LocalDate fecha) {
this.titulo = titulo;
this.descripcion = descripcion;
this.fecha = fecha;
}

public String getTitulo() {
return titulo;
}

public void setTitulo(String titulo) {
this.titulo = titulo;
}

public String getDescripcion() {
return descripcion;
}

public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}

public LocalDate getFecha() {
return fecha;
}

public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
}

4. Crear un repositorio para la entidad "Tarea" que extienda de "JpaRepository".

Recordar que la entidad se llama TodolistEntity. Para el repositorio realizé la creación de un paquete llamado Repository y la interface con nombre TodolistRepository
package com.example.demo.Repository;

import com.example.demo.Entity.TodolistEntity;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TodolistRepository extends JpaRepository<TodolistEntity, Long> {
}

5. Crear un controlador REST que maneje las operaciones CRUD para las tareas.

Por último la creación del controlador se realiza creando otro paquete con nombre Controller y la clase TodolistController con las operaciones Create (Crear), Read (Leer), Update (Actualizar) y Delete (Borrar)
package com.example.demo.Controller;

import com.example.demo.Entity.TodolistEntity;
import com.example.demo.Repository.TodolistRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/tareas")
public class TodolistController {
@Autowired
private TodolistRepository todolistRepository;
@GetMapping("")
public List<TodolistEntity> mostrarTarea(){
return todolistRepository.findAll();
}
@PostMapping("")
public TodolistEntity crearTarea(@RequestBody TodolistEntity todolistEntity){
return todolistRepository.save(todolistEntity);
}
@PutMapping("/{id}")
public TodolistEntity actualizarTarea(@RequestBody TodolistEntity todolistEntity){
return todolistRepository.save(todolistEntity);

}
@DeleteMapping("/{id}")
public void eliminarTarea(@PathVariable Long id){
todolistRepository.deleteById(id);
}
}
Ahora realizamos pruebas a nuestro código y utilizando la aplicación POSTMAN ingresaremos nuestros datos, tener presente que para la otra parte de este ejercicio haremos el Front.

POST: Se ingresan y cargan a la base de datos con un RESPONSE 200, lo cuál nos indica que la solicitud ha sido exitosa.


GET: Se muestran todos los elementos de la base datos, lo puedo validar directamente en el navegador, o también por la aplicación POSTMAN




PUT: Se actualiza la información, tener en cuenta las rutas que se asignan en el TodolistController. Para este ejemplo usé: http://localhost:8080/tareas/1

DELETE: Se elimina un elemento deseado, usaré el de la ruta http://localhost:8080/tareas/2




Así quedaron distribuidos los paquetes y las clases utilizados.



Con este ejercicio hemos integrado bases de datos con el lenguaje de programación Java con la ayuda del framework Spring Boot cuyos microservicios nos ayudaron a realizar esta sencilla implementación. ¿Qué más se te ocurre aplicar utilizando esta herramientas? Coméntame tus ideas en la sección de comentarios.

Saludos

miércoles, 19 de abril de 2023

PROYECTO: JAVA+SPRING BOOT+MYSQL+PHPMYADMIN

Hola a todos siguiendo con el proceso de desarrollo backend, les traigo este ejercicio que consta de mostrar una base de datos utilizando MYSQL+PHPMYADMIN+JAVA+SPRING BOOT. 

  1. MYSQL y PHPMYADMIN: Crear una base de datos llamada empleado. Esta base debe tener los siguientes atributos: id, name, email,empresa,rol y agrega datos, los cuales son los que vamos a mostrar más adelante en nuestro navegador.
    Puedes crear esta BD usando directamente MySQL o  PHPMyAdmin, recuerda que esta configuración se hizo descargando XAMPP. (¿Qué diferencias notaste entre la creación de tablas entre MySQL y PHPMyAdmin?). Para poder utilizar el PHPMyAdmin debe estar corriendo nuestro servidor Apache.


    2. SPRINGBOOT: Generar un proyecto con la siguiente configuración y las 3 dependencias.


3. JAVA: Utilizando el editor IntelliJ IDEA iniciamos revisando nuestro archivo pom.xml y verificando que todas nuestras dependencias hayan sido cargadas.

Crear 3 packages: 
  • Entity: Dentro de este package crea una clase llamada Empleado:
package com.example.demo.Entity;

import jakarta.persistence.*;

@Entity
@Table(name = "empleado")
public class Empleado {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;

@Column(name = "empresa")
private String empresa;

@Column(name = "rol")
private String rol;

public Empleado(){

}

public Empleado(String name, String email, String empresa, String rol) {
this.name = name;
this.email = email;
this.empresa = empresa;
this.rol = rol;
}

public Long getId() {
return Id;
}

public void setId(Long id) {
Id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getEmpresa() {
return empresa;
}

public void setEmpresa(String empresa) {
this.empresa = empresa;
}

public String getRol() {
return rol;
}

public void setRol(String rol) {
this.rol = rol;
}
}
Repository

package com.example.demo.Repository;

import com.example.demo.Entity.Empleado;
import org.springframework.data.jpa.repository.JpaRepository;

public interface EmpleadoRepository extends JpaRepository<Empleado, Long> {

}
Controller
package com.example.demo.Controller;

import com.example.demo.Entity.Empleado;
import com.example.demo.Repository.EmpleadoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/empleado")
public class Controllerempleado {
@Autowired
private EmpleadoRepository empleadoRepository;
@GetMapping
public List<Empleado> getAllEmpleados(){
return empleadoRepository.findAll();
}
}


aplication.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/empleado?useSSL=false
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
RESULTADO



miércoles, 12 de abril de 2023

PROYECTO: JAVA + SPRING BOOT : HOLA MUNDO

Hola a todos

Para esta sección realizaremos la siguiente actividad para enfocarnos al desarrollo Backend. El objetivo es imprimir "hola mundo", entendiendo los conceptos vistos en las clases. Sigamos paso a paso:

1. Visita https://start.spring.io/ y descarga el archivo con las siguientes configuraciones y dependencias:


2. Abre el editor preferido, el que hemos estado trabajando es el IntelliJ IDEA, carga el proyecto y verifica que en el archivo pom.xml se haya cargado correctamente la dependencia Spring Web. (Como ejercicio adicional, realiza la generación del proyecto sin la dependencia y luego cárgala manualmente recuerda actualizar, deja comentarios con el resultado)


3. Verifica que tu archivo principal se encuentre configurado correctamente, lo puedes correr si es necesario(opcional)


4. Creación del package Controller y el archivo que contendrá las clases y métodos (ControllerSaludar.java).



5. Ejecución del proyecto: Corre tu proyecto y luego ve al navegador y copia localhost:8080.

Hemos terminado nuestra primer actividad, recuerda subir el repositorio a GIT y pendiente al BLOG para la siguiente actividad en la que realizaremos el TO DO LIST.