Bota de primavera | Cómo acceder a la base de datos usando Spring Data JPA

Spring Data JPA es un método para implementar repositorios JPA para agregar fácilmente la capa de acceso a datos en las aplicaciones. CRUD significa crear, recuperar, actualizar, eliminar, que son las posibles operaciones que se pueden realizar en una base de datos. En este artículo, veremos un ejemplo de cómo acceder a los datos de una base de datos ( MySQL para este artículo) en una aplicación Spring Boot usando Spring Data JPA.

Para aprender a crear un proyecto Spring Boot, consulte este artículo .

Una base de datos es una colección de datos interrelacionados que ayuda en la recuperación, inserción y eliminación eficiente de datos de la base de datos y organiza los datos en forma de tablas, vistas, esquemas, informes, etc. Entonces, para cualquier aplicación, la base de datos es uno de los módulos más importantes y tiene que haber una forma de comunicarse con él. Por lo tanto, se siguen los siguientes pasos para acceder a la base de datos usando Spring Data JPA:

  1. Vaya a spring initializr y cree un nuevo proyecto con las siguientes dependencias:
    • Telaraña de primavera
    • JPA de datos de primavera
    • Controlador MySQL
  2. Descargue el proyecto inicial e impórtelo en el IDE.
  3. Después de que el proyecto se sincronice, crearemos una clase modelo Company con la anotación @Entity , lo que significa que esta clase se asigna a la tabla en la base de datos. Agregue los miembros de datos con los mismos tipos de datos que las columnas en la base de datos y genere constructores y captadores. Agregue la anotación @Id al miembro de datos que se comportará como el atributo de clave principal en la tabla y @Generatedvalue(strategy = generationtype.auto) para incrementar automáticamente el atributo de clave principal. La siguiente es la implementación de esta clase:

    @Entity
    public class Company {
      
        // Primary ID which increments
        // automatically when new entry
        // is added into the database
        @Id
        @GeneratedValue(strategy
                        = GenerationType.AUTO)
        int id;
      
        String name;
      
        // In months
        int duration;
        String profile;
      
        // Can be 0
        int stipend;
        boolean workFromHome;
      
        public Company()
        {
        }
      
        // Parameterized constructor
        public Company(String name, int duration,
                       String profile,
                       int stipend,
                       boolean workFromHome)
        {
            this.name = name;
            this.duration = duration;
            this.profile = profile;
            this.stipend = stipend;
            this.workFromHome = workFromHome;
        }
      
        // Getters and setters of
        // the variables
        public int getId()
        {
            return id;
        }
      
        public String getName()
        {
            return name;
        }
      
        public int getDuration()
        {
            return duration;
        }
      
        public String getProfile()
        {
            return profile;
        }
      
        public int getStipend()
        {
            return stipend;
        }
      
        public void setId(int id)
        {
            this.id = id;
        }
      
        public boolean isWorkFromHome()
        {
            return workFromHome;
        }
  4. Ahora, cree una interfaz CompanyRepository con la anotación @Repository que implementará CrudRepository . Las funciones para realizar las operaciones CRUD se definirán en la interfaz como se muestra a continuación:

    @Repository
    public interface CompanyRepository
        extends CrudRepository<Company,
                               Integer> {
      
        Company findById(int id);
        List<Company> findAll();
        void deleteById(int id);
    }

    Nota: Las funciones no se implementarán porque ya están implementadas en CrudRepository .

  5. Ahora, crearemos API REST (GET, POST, PUT, DELETE) como se muestra a continuación:

    @RestController
    public class CompanyController {
        @Autowired
        private CompanyRepository repo;
      
        // Home Page
        @GetMapping("/")
        public String welcome()
        {
            return "<html><body>"
                + "<h1>WELCOME</h1>"
                + "</body></html>";
        }
      
        // Get All Notes
        @GetMapping("/company")
        public List<Company> getAllNotes()
        {
            return repo.findAll();
        }
      
        // Get the company details by
        // ID
        @GetMapping("/company/{id}")
        public Company getCompanyById(
            @PathVariable(value = "id") int id)
        {
            return repo.findById(id);
        }
      
        @PostMapping("/company")
        @ResponseStatus(HttpStatus.CREATED)
        public Company addCompany(
            @RequestBody Company company)
        {
            return repo.save(company);
        }
      
        @DeleteMapping("/delete/{id}")
        public void deleteStudent(
            @PathVariable(value = "id") int id)
        {
            repo.deleteById(id);
        }
      
        @PutMapping("/company/{id}")
        public ResponseEntity<Object> updateStudent(
            @RequestBody Company company,
            @PathVariable int id)
        {
      
            Optional<Company> companyRepo
                = Optional.ofNullable(
                    repo.findById(id));
      
            if (!companyRepo.isPresent())
                return ResponseEntity
                    .notFound()
                    .build();
      
            company.setId(id);
      
            repo.save(company);
      
            return ResponseEntity
                .noContent()
                .build();
        }
  6. Ahora, abra el archivo application.properties y agregue el siguiente código. Reemplace el nombre de la base de datos con la base de datos que contiene la tabla Company , el nombre de usuario con el nombre de usuario del servidor mysql (el valor predeterminado es root) y la contraseña con la contraseña de mysql.

    spring.datasource.url=jdbc:mysql://localhost:3306/database_name
    spring.datasource.username=nombre de usuario
    spring.datasource.password=contraseña
    spring.jpa.hibernate.ddl-auto=actualizar

  7. Esto completa el proceso de establecer una conexión con la base de datos. Ahora, construimos y ejecutamos el proyecto y llamamos a las diferentes API.

    Nota: Por lo general, se prefiere Postman para probar las API de llamadas, por lo tanto, hemos utilizado la herramienta Postman para probar el proyecto.

Producción:

Publicación traducida automáticamente

Artículo escrito por AakashYadav4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *