Введение
Hibernate и Spring Boot — две популярные технологии в экосистеме Java, которые без проблем работают вместе, упрощая разработку веб-приложений. Hibernate — это мощная библиотека объектно-реляционного сопоставления (ORM), которая абстрагирует уровень базы данных, а Spring Boot предоставляет легкую и простую в использовании платформу для создания микросервисов и веб-приложений.
В этом руководстве мы рассмотрим процесс настройки приложения Spring Boot с помощью Hibernate с фрагментами кода, которые помогут вам в этом.
Предпосылки
Чтобы следовать этому руководству, у вас должно быть:
- Базовое понимание Java и Spring Boot
- Maven или Gradle установлен
- Работающая установка MySQL (или любой другой реляционной базы данных)
Настройка проекта
Сначала создайте новый проект Spring Boot с помощью Spring Initializr. Выберите следующие зависимости:
- Интернет
- JPA (API сохраняемости Java)
- MySQL (или предпочитаемая вами база данных)
Загрузите и распакуйте сгенерированный проект.
Настройка подключения к базе данных
Откройте файл application.properties
в каталоге src/main/resources
и добавьте следующую конфигурацию:
spring.datasource.url=jdbc:mysql://localhost:3306/my_database?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=my_password spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Замените my_database
, root
и my_password
именем вашей базы данных, именем пользователя и паролем соответственно.
Создание класса сущностей
Создайте новый класс Java Employee
в пакете com.example.demo
и добавьте следующий код:
package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String position; // Getters and setters // Constructors }
Создание репозитория
Создайте новый интерфейс EmployeeRepository
в пакете com.example.demo
и расширьте JpaRepository
:
package com.example.demo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface EmployeeRepository extends JpaRepository<Employee, Long> { }
Создание службы
Создайте новый класс EmployeeService
в пакете com.example.demo
и добавьте следующий код:
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class EmployeeService { @Autowired private EmployeeRepository employeeRepository; public List<Employee> getAllEmployees() { return employeeRepository.findAll(); } public Employee getEmployeeById(Long id) { return employeeRepository.findById(id).orElse(null); } public Employee saveOrUpdateEmployee(Employee employee) { return employeeRepository.save(employee); } public void deleteEmployee(Long id) { employeeRepository.deleteById(id); } }
Создание контроллера
Создайте новый класс EmployeeController
в пакете com.example.demo
и добавьте следующий код:
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/employees") public class EmployeeController { @Autowired private EmployeeService employeeService; @GetMapping public List<Employee> getAllEmployees() { return employeeService.getAllEmployees(); } @GetMapping("/{id}")