From 66feb8fbe66e874fb9e0cff919696408c02cba55 Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Wed, 20 Mar 2024 13:31:12 -0600 Subject: [PATCH 1/6] mi primer microservicio --- .../controller/StudentApiController.java | 19 ++++++++ .../impl/StudentApiControllerImpl.java | 33 +++++++++++++ .../com/app/backend/model/StudentModel.java | 46 +++++++++++++++++++ .../app/backend/service/StudentService.java | 17 +++++++ .../service/impl/StudentServiceImpl.java | 21 +++++++++ 5 files changed, 136 insertions(+) create mode 100644 src/main/java/com/app/backend/controller/StudentApiController.java create mode 100644 src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java create mode 100644 src/main/java/com/app/backend/model/StudentModel.java create mode 100644 src/main/java/com/app/backend/service/StudentService.java create mode 100644 src/main/java/com/app/backend/service/impl/StudentServiceImpl.java diff --git a/src/main/java/com/app/backend/controller/StudentApiController.java b/src/main/java/com/app/backend/controller/StudentApiController.java new file mode 100644 index 0000000..943fcd6 --- /dev/null +++ b/src/main/java/com/app/backend/controller/StudentApiController.java @@ -0,0 +1,19 @@ +package com.app.backend.controller; + +import com.app.backend.model.StudentModel; +import com.app.backend.service.impl.StudentServiceImpl; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@RequestMapping("/") +public interface StudentApiController { + @GetMapping("/students") + public List getAllStudents(); + @PostMapping("/newStudent") + public StudentModel createStudent(@RequestBody StudentModel newStudent); + @GetMapping("/students/{id}") + public StudentModel getStudentById(@PathVariable int id); +} diff --git a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java new file mode 100644 index 0000000..adf1a71 --- /dev/null +++ b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java @@ -0,0 +1,33 @@ +package com.app.backend.controller.impl; + +import com.app.backend.controller.StudentApiController; +import com.app.backend.model.StudentModel; +import com.app.backend.service.StudentService; +import com.app.backend.service.impl.StudentServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@RestController +public class StudentApiControllerImpl implements StudentApiController { + + @Autowired + StudentService studentService; + @Override + public List getAllStudents(){ + return studentService.getStudentsList(); + } + @Override + public StudentModel createStudent(@RequestBody StudentModel newStudent){ + return studentService.createStudent(newStudent); + } + + @Override + public StudentModel getStudentById(@PathVariable int id){ + return studentService.getStudentById(id); + } +} diff --git a/src/main/java/com/app/backend/model/StudentModel.java b/src/main/java/com/app/backend/model/StudentModel.java new file mode 100644 index 0000000..56f3ed8 --- /dev/null +++ b/src/main/java/com/app/backend/model/StudentModel.java @@ -0,0 +1,46 @@ +package com.app.backend.model; + +import java.util.Date; + +public class StudentModel { + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + private String firstName; + + public String getPatLastName() { + return patLastName; + } + + public void setPatLastName(String patLastName) { + this.patLastName = patLastName; + } + + private String patLastName; + + public String getMatLastName() { + return matLastName; + } + + public void setMatLastName(String matLastName) { + this.matLastName = matLastName; + } + + private String matLastName; + + public Date getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(Date dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + private Date dateOfBirth; + +} diff --git a/src/main/java/com/app/backend/service/StudentService.java b/src/main/java/com/app/backend/service/StudentService.java new file mode 100644 index 0000000..e01cfd2 --- /dev/null +++ b/src/main/java/com/app/backend/service/StudentService.java @@ -0,0 +1,17 @@ +package com.app.backend.service; + +import com.app.backend.model.StudentModel; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public interface StudentService { + + List students = new ArrayList<>(); + + public List getStudentsList(); + public StudentModel createStudent(StudentModel newStudent); + public StudentModel getStudentById(int id); +} diff --git a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java new file mode 100644 index 0000000..0a6aada --- /dev/null +++ b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java @@ -0,0 +1,21 @@ +package com.app.backend.service.impl; + +import com.app.backend.model.StudentModel; +import com.app.backend.service.StudentService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class StudentServiceImpl implements StudentService { + public List getStudentsList() { + return this.students; + } + public StudentModel createStudent(StudentModel newStudent){ + this.students.add(newStudent); + return newStudent; + } + public StudentModel getStudentById(int id){ + return this.students.get(id); + } +} From 9890753b2009c0d4fbf8e130f30c67e8e916daf8 Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Mon, 15 Apr 2024 23:21:30 -0600 Subject: [PATCH 2/6] Cambios a Student model --- .../com/app/backend/model/StudentModel.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/app/backend/model/StudentModel.java b/src/main/java/com/app/backend/model/StudentModel.java index 56f3ed8..a9dcb13 100644 --- a/src/main/java/com/app/backend/model/StudentModel.java +++ b/src/main/java/com/app/backend/model/StudentModel.java @@ -43,4 +43,23 @@ public void setDateOfBirth(Date dateOfBirth) { private Date dateOfBirth; + private String email; + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + private String phone; + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } } From e60044b0044df98760a5bbdbb3db5b35e5d16c16 Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Tue, 16 Apr 2024 20:25:51 -0600 Subject: [PATCH 3/6] =?UTF-8?q?a=C3=B1adir=20id=20a=20Student=20Model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/app/backend/model/StudentModel.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/app/backend/model/StudentModel.java b/src/main/java/com/app/backend/model/StudentModel.java index a9dcb13..767204f 100644 --- a/src/main/java/com/app/backend/model/StudentModel.java +++ b/src/main/java/com/app/backend/model/StudentModel.java @@ -3,6 +3,14 @@ import java.util.Date; public class StudentModel { + private Integer id; + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } public String getFirstName() { return firstName; } From ccf26dc5e5128752a5c2532494e48a7e863913d3 Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Tue, 16 Apr 2024 21:09:40 -0600 Subject: [PATCH 4/6] =?UTF-8?q?A=C3=B1adir=20id=20a=20student=20model=20y?= =?UTF-8?q?=20endpoints=20para=20eliminar=20y=20actualizar=20registros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StudentApiController.java | 5 +++ .../impl/StudentApiControllerImpl.java | 8 +++++ .../app/backend/service/StudentService.java | 5 +++ .../service/impl/StudentServiceImpl.java | 36 ++++++++++++++++++- 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/app/backend/controller/StudentApiController.java b/src/main/java/com/app/backend/controller/StudentApiController.java index 943fcd6..938a7cd 100644 --- a/src/main/java/com/app/backend/controller/StudentApiController.java +++ b/src/main/java/com/app/backend/controller/StudentApiController.java @@ -2,6 +2,7 @@ import com.app.backend.model.StudentModel; import com.app.backend.service.impl.StudentServiceImpl; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -16,4 +17,8 @@ public interface StudentApiController { public StudentModel createStudent(@RequestBody StudentModel newStudent); @GetMapping("/students/{id}") public StudentModel getStudentById(@PathVariable int id); + @PutMapping("/update-student/{id}") + public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent); + @DeleteMapping("delete-student/{id}") + public ResponseEntity deleteStudentById(@PathVariable int id); } diff --git a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java index adf1a71..36ef02a 100644 --- a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java +++ b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java @@ -6,6 +6,7 @@ import com.app.backend.service.impl.StudentServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,4 +31,11 @@ public StudentModel createStudent(@RequestBody StudentModel newStudent){ public StudentModel getStudentById(@PathVariable int id){ return studentService.getStudentById(id); } + @Override + public ResponseEntity deleteStudentById(@PathVariable int id){ + return studentService.deleteStudentById(id); + } + public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent){ + return studentService.updateStudentById(id, newStudent); + } } diff --git a/src/main/java/com/app/backend/service/StudentService.java b/src/main/java/com/app/backend/service/StudentService.java index e01cfd2..4fddc10 100644 --- a/src/main/java/com/app/backend/service/StudentService.java +++ b/src/main/java/com/app/backend/service/StudentService.java @@ -1,8 +1,11 @@ package com.app.backend.service; import com.app.backend.model.StudentModel; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.net.http.HttpResponse; import java.util.ArrayList; import java.util.List; @@ -14,4 +17,6 @@ public interface StudentService { public List getStudentsList(); public StudentModel createStudent(StudentModel newStudent); public StudentModel getStudentById(int id); + public ResponseEntity deleteStudentById(int Id); + public ResponseEntity updateStudentById(int id, StudentModel newStudent); } diff --git a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java index 0a6aada..775ff51 100644 --- a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java +++ b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java @@ -2,10 +2,17 @@ import com.app.backend.model.StudentModel; import com.app.backend.service.StudentService; +import jakarta.annotation.Nullable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import javax.lang.model.type.NullType; +import java.net.http.HttpResponse; import java.util.List; +import static org.springframework.http.HttpStatus.OK; + @Service public class StudentServiceImpl implements StudentService { public List getStudentsList() { @@ -15,7 +22,34 @@ public StudentModel createStudent(StudentModel newStudent){ this.students.add(newStudent); return newStudent; } + @Nullable public StudentModel getStudentById(int id){ - return this.students.get(id); + for(StudentModel student : this.students){ + if(student.getId() == id){ + return student; + } + } + return null; + } + + public ResponseEntity deleteStudentById(int id){ + for(StudentModel student : this.students){ + if(student.getId() == id){ + students.remove(student); + return ResponseEntity.status(OK).body(String.format("Estudiante con id %d eliminado correctamente", id)); + } + } + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); + } + + public ResponseEntity updateStudentById(int id, StudentModel newStudent){ + for(int i = 0; i < this.students.size(); i++) { + if(this.students.get(i).getId() == id){ + newStudent.setId(id); + this.students.set(i, newStudent); + return ResponseEntity.status(OK).body(String.format("Estudiante con id %d actualizado correctamente", id)); + } + } + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); } } From b8f31ed5ee7ce6dd0b140c524941fb83dec9b1e0 Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Fri, 10 May 2024 19:23:15 -0600 Subject: [PATCH 5/6] addition of repository and alumno entity --- pom.xml | 25 ++-- .../com/app/backend/BackendApplication.java | 2 + .../controller/AlumnoApiController.java | 12 ++ .../controller/StudentApiController.java | 24 ---- .../impl/AlumnoApiControllerImpl.java | 24 ++++ .../impl/StudentApiControllerImpl.java | 41 ------- .../java/com/app/backend/model/Alumno.java | 94 +++++++++++++++ .../com/app/backend/model/StudentModel.java | 73 ------------ .../backend/repository/AlumnoRepository.java | 11 ++ .../repository/Entity/AlumnoEntity.java | 112 ++++++++++++++++++ .../repository/impl/AlumnoRepositoryImpl.java | 26 ++++ .../app/backend/service/AlumnoService.java | 11 ++ .../app/backend/service/StudentService.java | 22 ---- .../service/impl/AlumnoServiceImpl.java | 42 +++++++ .../service/impl/StudentServiceImpl.java | 55 --------- src/main/resources/application.properties | 2 - src/main/resources/application.yml | 19 +++ 17 files changed, 366 insertions(+), 229 deletions(-) create mode 100644 src/main/java/com/app/backend/controller/AlumnoApiController.java delete mode 100644 src/main/java/com/app/backend/controller/StudentApiController.java create mode 100644 src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java delete mode 100644 src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java create mode 100644 src/main/java/com/app/backend/model/Alumno.java delete mode 100644 src/main/java/com/app/backend/model/StudentModel.java create mode 100644 src/main/java/com/app/backend/repository/AlumnoRepository.java create mode 100644 src/main/java/com/app/backend/repository/Entity/AlumnoEntity.java create mode 100644 src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java create mode 100644 src/main/java/com/app/backend/service/AlumnoService.java delete mode 100644 src/main/java/com/app/backend/service/StudentService.java create mode 100644 src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java delete mode 100644 src/main/java/com/app/backend/service/impl/StudentServiceImpl.java create mode 100644 src/main/resources/application.yml diff --git a/pom.xml b/pom.xml index 4f54660..f23c1e6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot @@ -8,35 +8,36 @@ 3.2.3 - com.app - backend + com.fcfm + back-end 0.0.1-SNAPSHOT - backend - first microservice in spring + back-end + Demo project for Spring Boot 17 + org.springframework.boot spring-boot-starter-data-jpa + org.springframework.boot spring-boot-starter-web - - org.springframework.boot - spring-boot-devtools - runtime - true - org.springframework.boot spring-boot-starter-test test + + mysql + mysql-connector-java + 8.0.13 + @@ -48,4 +49,4 @@ - + \ No newline at end of file diff --git a/src/main/java/com/app/backend/BackendApplication.java b/src/main/java/com/app/backend/BackendApplication.java index cf3920b..949edd6 100644 --- a/src/main/java/com/app/backend/BackendApplication.java +++ b/src/main/java/com/app/backend/BackendApplication.java @@ -2,7 +2,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +@EnableJpaRepositories @SpringBootApplication public class BackendApplication { diff --git a/src/main/java/com/app/backend/controller/AlumnoApiController.java b/src/main/java/com/app/backend/controller/AlumnoApiController.java new file mode 100644 index 0000000..f3e3799 --- /dev/null +++ b/src/main/java/com/app/backend/controller/AlumnoApiController.java @@ -0,0 +1,12 @@ +package com.app.backend.controller; + +import com.app.backend.model.Alumno; +import org.springframework.web.bind.annotation.*; + +@RequestMapping("/") +public interface AlumnoApiController { + @PostMapping("/create-alumno") + public void createAlumno(@RequestBody Alumno newAlumno); + @GetMapping("/alumno/{id}") + public Alumno getAlumnoById(@PathVariable Long id); +} diff --git a/src/main/java/com/app/backend/controller/StudentApiController.java b/src/main/java/com/app/backend/controller/StudentApiController.java deleted file mode 100644 index 938a7cd..0000000 --- a/src/main/java/com/app/backend/controller/StudentApiController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.app.backend.controller; - -import com.app.backend.model.StudentModel; -import com.app.backend.service.impl.StudentServiceImpl; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; - -@RequestMapping("/") -public interface StudentApiController { - @GetMapping("/students") - public List getAllStudents(); - @PostMapping("/newStudent") - public StudentModel createStudent(@RequestBody StudentModel newStudent); - @GetMapping("/students/{id}") - public StudentModel getStudentById(@PathVariable int id); - @PutMapping("/update-student/{id}") - public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent); - @DeleteMapping("delete-student/{id}") - public ResponseEntity deleteStudentById(@PathVariable int id); -} diff --git a/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java new file mode 100644 index 0000000..6b60749 --- /dev/null +++ b/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java @@ -0,0 +1,24 @@ +package com.app.backend.controller.impl; + +import com.app.backend.controller.AlumnoApiController; +import com.app.backend.model.Alumno; +import com.app.backend.model.Alumno; +import com.app.backend.service.AlumnoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +public class AlumnoApiControllerImpl implements AlumnoApiController { + + @Autowired + AlumnoService alumnoService; + @Override + public void createAlumno(@RequestBody Alumno newAlumno){ + alumnoService.createAlumno(newAlumno); + } + + @Override + public Alumno getAlumnoById(@PathVariable Long id){ + return alumnoService.getAlumnoById(id); + } +} diff --git a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java deleted file mode 100644 index 36ef02a..0000000 --- a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.app.backend.controller.impl; - -import com.app.backend.controller.StudentApiController; -import com.app.backend.model.StudentModel; -import com.app.backend.service.StudentService; -import com.app.backend.service.impl.StudentServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; - -@RestController -public class StudentApiControllerImpl implements StudentApiController { - - @Autowired - StudentService studentService; - @Override - public List getAllStudents(){ - return studentService.getStudentsList(); - } - @Override - public StudentModel createStudent(@RequestBody StudentModel newStudent){ - return studentService.createStudent(newStudent); - } - - @Override - public StudentModel getStudentById(@PathVariable int id){ - return studentService.getStudentById(id); - } - @Override - public ResponseEntity deleteStudentById(@PathVariable int id){ - return studentService.deleteStudentById(id); - } - public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent){ - return studentService.updateStudentById(id, newStudent); - } -} diff --git a/src/main/java/com/app/backend/model/Alumno.java b/src/main/java/com/app/backend/model/Alumno.java new file mode 100644 index 0000000..9bfd505 --- /dev/null +++ b/src/main/java/com/app/backend/model/Alumno.java @@ -0,0 +1,94 @@ +package com.app.backend.model; + +import java.sql.Date; + +public class Alumno { + + private String primerNombre; + + + private String segundoNombre; + + + private String apellidoPat; + + + private String apellidoMat; + + + private Date fechaNac; + + + private String curp; + + + private String email; + + + public Alumno(String primerNombre, String segundoNombre, String apellidoPat, String apellidoMat, Date fechaNac, String curp, String email){ + this.primerNombre = primerNombre; + this.segundoNombre = segundoNombre; + this.apellidoMat = apellidoMat; + this.apellidoPat = apellidoPat; + this.fechaNac = fechaNac; + this.curp = curp; + this.email = email; + } + + public Alumno(){} + public String getPrimerNombre() { + return primerNombre; + } + + public void setPrimerNombre(String primerNombre) { + this.primerNombre = primerNombre; + } + + public String getSegundoNombre() { + return segundoNombre; + } + + public void setSegundoNombre(String segundoNombre) { + this.segundoNombre = segundoNombre; + } + + public String getApellidoPat() { + return apellidoPat; + } + + public void setApellidoPat(String apellidoPat) { + this.apellidoPat = apellidoPat; + } + + public String getApellidoMat() { + return apellidoMat; + } + + public void setApellidoMat(String apellidoMat) { + this.apellidoMat = apellidoMat; + } + + public Date getFechaNac() { + return fechaNac; + } + + public void setFechaNac(Date fechaNac) { + this.fechaNac = fechaNac; + } + + public String getCurp() { + return curp; + } + + public void setCurp(String curp) { + this.curp = curp; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } +} \ No newline at end of file diff --git a/src/main/java/com/app/backend/model/StudentModel.java b/src/main/java/com/app/backend/model/StudentModel.java deleted file mode 100644 index 767204f..0000000 --- a/src/main/java/com/app/backend/model/StudentModel.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.app.backend.model; - -import java.util.Date; - -public class StudentModel { - private Integer id; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - private String firstName; - - public String getPatLastName() { - return patLastName; - } - - public void setPatLastName(String patLastName) { - this.patLastName = patLastName; - } - - private String patLastName; - - public String getMatLastName() { - return matLastName; - } - - public void setMatLastName(String matLastName) { - this.matLastName = matLastName; - } - - private String matLastName; - - public Date getDateOfBirth() { - return dateOfBirth; - } - - public void setDateOfBirth(Date dateOfBirth) { - this.dateOfBirth = dateOfBirth; - } - - private Date dateOfBirth; - - private String email; - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - private String phone; - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } -} diff --git a/src/main/java/com/app/backend/repository/AlumnoRepository.java b/src/main/java/com/app/backend/repository/AlumnoRepository.java new file mode 100644 index 0000000..75ab499 --- /dev/null +++ b/src/main/java/com/app/backend/repository/AlumnoRepository.java @@ -0,0 +1,11 @@ +package com.app.backend.repository; + +import com.app.backend.repository.Entity.AlumnoEntity; +import org.springframework.stereotype.Repository; + +@Repository +public interface AlumnoRepository { + void insertar(AlumnoEntity alumnoEntity); + + AlumnoEntity getAlumnoById(Long id); +} diff --git a/src/main/java/com/app/backend/repository/Entity/AlumnoEntity.java b/src/main/java/com/app/backend/repository/Entity/AlumnoEntity.java new file mode 100644 index 0000000..82381a7 --- /dev/null +++ b/src/main/java/com/app/backend/repository/Entity/AlumnoEntity.java @@ -0,0 +1,112 @@ +package com.app.backend.repository.Entity; +import jakarta.persistence.*; + +import java.sql.Date; + +@Entity +@Table(name = "alumno") +public class AlumnoEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name="alumno_id") + private Long alumnoId; + + @Column(name="primer_nombre") + private String primerNombre; + + @Column(name="segundo_nombre") + private String segundoNombre; + + @Column(name="apellido_pat") + private String apellidoPat; + + @Column(name="apellido_mat") + private String apellidoMat; + + @Column(name="fecha_nac") + private Date fechaNac; + + @Column(name="curp") + private String curp; + + @Column(name="email") + + private String email; + + + public AlumnoEntity(String primerNombre, String segundoNombre, String apellidoMat, String apellidoPat, Date fechaNac, String curp, String email){ + this.primerNombre = primerNombre; + this.segundoNombre = segundoNombre; + this.apellidoMat = apellidoMat; + this.apellidoPat = apellidoPat; + this.fechaNac = fechaNac; + this.curp = curp; + this.email = email; + } + + public AlumnoEntity(){} + + public Long getAlumnoId() { + return alumnoId; + } + + public void setAlumnoId(Long alumnoId) { + this.alumnoId = alumnoId; + } + + public String getPrimerNombre() { + return primerNombre; + } + + public void setPrimerNombre(String primerNombre) { + this.primerNombre = primerNombre; + } + + public String getSegundoNombre() { + return segundoNombre; + } + + public void setSegundoNombre(String segundoNombre) { + this.segundoNombre = segundoNombre; + } + + public String getApellidoPat() { + return apellidoPat; + } + + public void setApellidoPat(String apellidoPat) { + this.apellidoPat = apellidoPat; + } + + public String getApellidoMat() { + return apellidoMat; + } + + public void setApellidoMat(String apellidoMat) { + this.apellidoMat = apellidoMat; + } + + public Date getFechaNac() { + return fechaNac; + } + + public void setFechaNac(Date fechaNac) { + this.fechaNac = fechaNac; + } + + public String getCurp() { + return curp; + } + + public void setCurp(String curp) { + this.curp = curp; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } +} diff --git a/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java b/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java new file mode 100644 index 0000000..8699250 --- /dev/null +++ b/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java @@ -0,0 +1,26 @@ +package com.app.backend.repository.impl; +import com.app.backend.repository.AlumnoRepository; +import com.app.backend.repository.Entity.AlumnoEntity; +import jakarta.persistence.EntityManager; +import jakarta.transaction.Transactional; +import jakarta.persistence.*; +import org.springframework.stereotype.Repository; + +@Repository +public class AlumnoRepositoryImpl implements AlumnoRepository{ + + @PersistenceContext + private EntityManager em; + + @Transactional + public void insertar(AlumnoEntity alumnoEntity){ + em.getTransaction().begin(); + em.persist(alumnoEntity); + em.getTransaction().commit(); + } + + @Override + public AlumnoEntity getAlumnoById(Long id){ + return em.find(AlumnoEntity.class, id); + } +} diff --git a/src/main/java/com/app/backend/service/AlumnoService.java b/src/main/java/com/app/backend/service/AlumnoService.java new file mode 100644 index 0000000..3275d08 --- /dev/null +++ b/src/main/java/com/app/backend/service/AlumnoService.java @@ -0,0 +1,11 @@ +package com.app.backend.service; + +import com.app.backend.model.Alumno; +import org.springframework.stereotype.Service; + +@Service +public interface AlumnoService { + + public void createAlumno(Alumno newStudent); + public Alumno getAlumnoById(Long id); +} diff --git a/src/main/java/com/app/backend/service/StudentService.java b/src/main/java/com/app/backend/service/StudentService.java deleted file mode 100644 index 4fddc10..0000000 --- a/src/main/java/com/app/backend/service/StudentService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.app.backend.service; - -import com.app.backend.model.StudentModel; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -import java.net.http.HttpResponse; -import java.util.ArrayList; -import java.util.List; - -@Service -public interface StudentService { - - List students = new ArrayList<>(); - - public List getStudentsList(); - public StudentModel createStudent(StudentModel newStudent); - public StudentModel getStudentById(int id); - public ResponseEntity deleteStudentById(int Id); - public ResponseEntity updateStudentById(int id, StudentModel newStudent); -} diff --git a/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java b/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java new file mode 100644 index 0000000..f888473 --- /dev/null +++ b/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java @@ -0,0 +1,42 @@ +package com.app.backend.service.impl; + +import com.app.backend.model.Alumno; +import com.app.backend.repository.AlumnoRepository; +import com.app.backend.repository.Entity.AlumnoEntity; +import com.app.backend.service.AlumnoService; +import jakarta.annotation.Nullable; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class AlumnoServiceImpl implements AlumnoService { + + @Autowired + private AlumnoRepository alumnoRepository; + + public void createAlumno(Alumno newAlumno){ + AlumnoEntity alumnoEntity = new AlumnoEntity( + newAlumno.getPrimerNombre(), + newAlumno.getSegundoNombre(), + newAlumno.getApellidoPat(), + newAlumno.getApellidoMat(), + newAlumno.getFechaNac(), + newAlumno.getCurp(), + newAlumno.getEmail() + ); + alumnoRepository.insertar(alumnoEntity); + } + + @Nullable + public Alumno getAlumnoById(Long id){ + AlumnoEntity alumnoEntity = alumnoRepository.getAlumnoById(id); + Alumno alumno = new Alumno(alumnoEntity.getPrimerNombre(), + alumnoEntity.getSegundoNombre(), + alumnoEntity.getApellidoPat(), + alumnoEntity.getApellidoMat(), + alumnoEntity.getFechaNac(), + alumnoEntity.getCurp(), + alumnoEntity.getEmail()); + return alumno; + } +} diff --git a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java deleted file mode 100644 index 775ff51..0000000 --- a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.app.backend.service.impl; - -import com.app.backend.model.StudentModel; -import com.app.backend.service.StudentService; -import jakarta.annotation.Nullable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -import javax.lang.model.type.NullType; -import java.net.http.HttpResponse; -import java.util.List; - -import static org.springframework.http.HttpStatus.OK; - -@Service -public class StudentServiceImpl implements StudentService { - public List getStudentsList() { - return this.students; - } - public StudentModel createStudent(StudentModel newStudent){ - this.students.add(newStudent); - return newStudent; - } - @Nullable - public StudentModel getStudentById(int id){ - for(StudentModel student : this.students){ - if(student.getId() == id){ - return student; - } - } - return null; - } - - public ResponseEntity deleteStudentById(int id){ - for(StudentModel student : this.students){ - if(student.getId() == id){ - students.remove(student); - return ResponseEntity.status(OK).body(String.format("Estudiante con id %d eliminado correctamente", id)); - } - } - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); - } - - public ResponseEntity updateStudentById(int id, StudentModel newStudent){ - for(int i = 0; i < this.students.size(); i++) { - if(this.students.get(i).getId() == id){ - newStudent.setId(id); - this.students.set(i, newStudent); - return ResponseEntity.status(OK).body(String.format("Estudiante con id %d actualizado correctamente", id)); - } - } - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a0099ef..e69de29 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +0,0 @@ -spring.application.name=backend -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..c455c4f --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,19 @@ +spring: + datasource: + url: jdbc:mysql://localhost:3306/universidades?serverTimezone=UTC + # spring.datasource.url=jdbc:mysql:3314/universidades + username: root + password: P3dr0@nt0n10 + driver-class-name: com.mysql.jdbc.Driver + # spring.datasource.driver.class=com.mysql.jdbc.Driver + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL8Dialect + # spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect + naming.physical-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl + + + +server: + port: 8080 \ No newline at end of file From 5bfb5e82aacd380889afebb333cea649dd4f378e Mon Sep 17 00:00:00 2001 From: pedrogzz18 Date: Fri, 10 May 2024 23:26:39 -0600 Subject: [PATCH 6/6] add crud operations --- .../controller/AlumnoApiController.java | 10 ++++ .../impl/AlumnoApiControllerImpl.java | 17 ++++++ .../backend/repository/AlumnoRepository.java | 10 ++++ .../repository/impl/AlumnoRepositoryImpl.java | 17 ++++++ .../app/backend/service/AlumnoService.java | 8 +++ .../service/impl/AlumnoServiceImpl.java | 53 +++++++++++++------ .../com/app/backend/utils/AlumnoMapper.java | 35 ++++++++++++ 7 files changed, 134 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/app/backend/utils/AlumnoMapper.java diff --git a/src/main/java/com/app/backend/controller/AlumnoApiController.java b/src/main/java/com/app/backend/controller/AlumnoApiController.java index f3e3799..0d5d179 100644 --- a/src/main/java/com/app/backend/controller/AlumnoApiController.java +++ b/src/main/java/com/app/backend/controller/AlumnoApiController.java @@ -3,10 +3,20 @@ import com.app.backend.model.Alumno; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RequestMapping("/") public interface AlumnoApiController { @PostMapping("/create-alumno") public void createAlumno(@RequestBody Alumno newAlumno); @GetMapping("/alumno/{id}") public Alumno getAlumnoById(@PathVariable Long id); + + @GetMapping("/alumno") + public List getAlumnoList(); + + @PutMapping("/update-alumno/{id}") + public Alumno updateAlumno(@PathVariable Long id, Alumno updatedAlumno); + @DeleteMapping("/delete-alumno/{id}") + public void deleteAlumno(@PathVariable Long id); } diff --git a/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java index 6b60749..e0a444d 100644 --- a/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java +++ b/src/main/java/com/app/backend/controller/impl/AlumnoApiControllerImpl.java @@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController public class AlumnoApiControllerImpl implements AlumnoApiController { @@ -21,4 +23,19 @@ public void createAlumno(@RequestBody Alumno newAlumno){ public Alumno getAlumnoById(@PathVariable Long id){ return alumnoService.getAlumnoById(id); } + + @Override + public List getAlumnoList(){ + return alumnoService.getAlumnoList(); + } + + @Override + public Alumno updateAlumno(Long id, Alumno updatedAlumno){ + return alumnoService.updateAlumno(id, updatedAlumno); + } + + @Override + public void deleteAlumno(Long id){ + alumnoService.deleteAlumno(id); + } } diff --git a/src/main/java/com/app/backend/repository/AlumnoRepository.java b/src/main/java/com/app/backend/repository/AlumnoRepository.java index 75ab499..e014a65 100644 --- a/src/main/java/com/app/backend/repository/AlumnoRepository.java +++ b/src/main/java/com/app/backend/repository/AlumnoRepository.java @@ -1,11 +1,21 @@ package com.app.backend.repository; +import com.app.backend.model.Alumno; import com.app.backend.repository.Entity.AlumnoEntity; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface AlumnoRepository { void insertar(AlumnoEntity alumnoEntity); AlumnoEntity getAlumnoById(Long id); + + List getAlumnoList(); + + void deleteAlumno(Long id); + + AlumnoEntity updateAlumno(AlumnoEntity alumnoEntity); + } diff --git a/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java b/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java index 8699250..879e8bb 100644 --- a/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java +++ b/src/main/java/com/app/backend/repository/impl/AlumnoRepositoryImpl.java @@ -6,6 +6,8 @@ import jakarta.persistence.*; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class AlumnoRepositoryImpl implements AlumnoRepository{ @@ -23,4 +25,19 @@ public void insertar(AlumnoEntity alumnoEntity){ public AlumnoEntity getAlumnoById(Long id){ return em.find(AlumnoEntity.class, id); } + @Override + public List getAlumnoList(){ + TypedQuery query = em.createQuery("SELECT a FROM Alumno a", AlumnoEntity.class); + return query.getResultList(); + } + + @Transactional + public void deleteAlumno(Long id){ + em.remove(getAlumnoById(id)); + } + + @Transactional + public AlumnoEntity updateAlumno(AlumnoEntity alumnoEntity){ + return em.merge(alumnoEntity); + } } diff --git a/src/main/java/com/app/backend/service/AlumnoService.java b/src/main/java/com/app/backend/service/AlumnoService.java index 3275d08..7f8c48f 100644 --- a/src/main/java/com/app/backend/service/AlumnoService.java +++ b/src/main/java/com/app/backend/service/AlumnoService.java @@ -3,9 +3,17 @@ import com.app.backend.model.Alumno; import org.springframework.stereotype.Service; +import java.util.List; + @Service public interface AlumnoService { public void createAlumno(Alumno newStudent); public Alumno getAlumnoById(Long id); + + public void deleteAlumno(Long id); + + public List getAlumnoList(); + + public Alumno updateAlumno(long id, Alumno updatedAlumno); } diff --git a/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java b/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java index f888473..83a7175 100644 --- a/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java +++ b/src/main/java/com/app/backend/service/impl/AlumnoServiceImpl.java @@ -4,10 +4,15 @@ import com.app.backend.repository.AlumnoRepository; import com.app.backend.repository.Entity.AlumnoEntity; import com.app.backend.service.AlumnoService; +import com.app.backend.utils.AlumnoMapper; import jakarta.annotation.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + + @Service public class AlumnoServiceImpl implements AlumnoService { @@ -15,28 +20,44 @@ public class AlumnoServiceImpl implements AlumnoService { private AlumnoRepository alumnoRepository; public void createAlumno(Alumno newAlumno){ - AlumnoEntity alumnoEntity = new AlumnoEntity( - newAlumno.getPrimerNombre(), - newAlumno.getSegundoNombre(), - newAlumno.getApellidoPat(), - newAlumno.getApellidoMat(), - newAlumno.getFechaNac(), - newAlumno.getCurp(), - newAlumno.getEmail() - ); + AlumnoEntity alumnoEntity = AlumnoMapper.alumnoModelToAlumnoEntity(newAlumno); alumnoRepository.insertar(alumnoEntity); } @Nullable public Alumno getAlumnoById(Long id){ AlumnoEntity alumnoEntity = alumnoRepository.getAlumnoById(id); - Alumno alumno = new Alumno(alumnoEntity.getPrimerNombre(), - alumnoEntity.getSegundoNombre(), - alumnoEntity.getApellidoPat(), - alumnoEntity.getApellidoMat(), - alumnoEntity.getFechaNac(), - alumnoEntity.getCurp(), - alumnoEntity.getEmail()); + Alumno alumno = AlumnoMapper.alumnoEntitytoAlumnoModel(alumnoEntity); return alumno; } + + @Override + public void deleteAlumno(Long id){ + alumnoRepository.deleteAlumno(id); + } + + @Override + public List getAlumnoList(){ + List alumnoEntityList = alumnoRepository.getAlumnoList(); + List alumnoList = new ArrayList<>(); + for(AlumnoEntity alumnoEntity : alumnoEntityList){ + alumnoList.add(AlumnoMapper.alumnoEntitytoAlumnoModel(alumnoEntity)); + } + return alumnoList; + } + + @Override + public Alumno updateAlumno(long id, Alumno updatedAlumno){ + Alumno existingAlumno = getAlumnoById(id); + if (existingAlumno != null) { + existingAlumno.setPrimerNombre(updatedAlumno.getPrimerNombre()); + existingAlumno.setSegundoNombre(updatedAlumno.getSegundoNombre()); + existingAlumno.setApellidoPat(updatedAlumno.getApellidoPat()); + existingAlumno.setApellidoMat(updatedAlumno.getApellidoMat()); + existingAlumno.setCurp(updatedAlumno.getCurp()); + existingAlumno.setFechaNac(updatedAlumno.getFechaNac()); + existingAlumno.setEmail(updatedAlumno.getEmail()); + } + return AlumnoMapper.alumnoEntitytoAlumnoModel(alumnoRepository.updateAlumno(AlumnoMapper.alumnoModelToAlumnoEntity(existingAlumno))); + } } diff --git a/src/main/java/com/app/backend/utils/AlumnoMapper.java b/src/main/java/com/app/backend/utils/AlumnoMapper.java new file mode 100644 index 0000000..80c815e --- /dev/null +++ b/src/main/java/com/app/backend/utils/AlumnoMapper.java @@ -0,0 +1,35 @@ +package com.app.backend.utils; + +import com.app.backend.model.Alumno; +import com.app.backend.repository.Entity.AlumnoEntity; + +import java.sql.Date; + +public class AlumnoMapper { + + public static Alumno alumnoEntitytoAlumnoModel(AlumnoEntity alumnoEntity){ + Alumno alumno = new Alumno( + alumnoEntity.getPrimerNombre(), + alumnoEntity.getSegundoNombre(), + alumnoEntity.getApellidoPat(), + alumnoEntity.getApellidoMat(), + alumnoEntity.getFechaNac(), + alumnoEntity.getCurp(), + alumnoEntity.getEmail()); + return alumno; + } + + public static AlumnoEntity alumnoModelToAlumnoEntity(Alumno alumno){ + + AlumnoEntity alumnoEntity = new AlumnoEntity( + alumno.getPrimerNombre(), + alumno.getSegundoNombre(), + alumno.getApellidoPat(), + alumno.getApellidoMat(), + alumno.getFechaNac(), + alumno.getCurp(), + alumno.getEmail() + ); + return alumnoEntity; + } +} \ No newline at end of file