Hibernate는 편리한 지속성 작업을 위해 Java 객체를 데이터베이스 테이블에 매핑할 수 있는 널리 사용되는 ORM(Object Relational Mapping) 프레임워크입니다. Spring Boot 프로젝트에서 Hibernate를 통합하면 데이터베이스 작업을 더 쉽게 수행하는 데 도움이 될 수 있습니다. 이 기사에서는 Spring Boot 프로젝트에 Hibernate를 통합하는 방법을 소개하고 해당 예제를 제공합니다.
pom.xml 파일에 다음 종속성을 도입하세요.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency>
그 중 spring-boot-starter-data-jpa는 JPA(Java Persistence API) 통합을 위해 Spring Boot에서 제공하는 시작 종속성입니다. . 이미 Hibernate 관련 종속성을 포함하고 있습니다. MySQL 데이터베이스용 드라이버는 mysql-connector-java입니다. hibernate-core는 Hibernate의 핵심 종속성입니다.
application.properties에서 데이터 소스 구성:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.hibernate.ddl-auto=create-drop
여기에서는 MySQL 데이터베이스가 사용되며 실제 상황에 따라 수정될 수 있습니다. 그 중 spring.jpa.hibernate.ddl-auto 속성은 Hibernate가 자동으로 데이터베이스 테이블을 생성하는 방법을 지정하고, create-drop은 애플리케이션이 시작될 때마다 테이블이 생성되고 애플리케이션이 실행되면 테이블이 삭제된다는 의미이다. 닫은.
데이터베이스 테이블에 매핑하기 위한 간단한 엔터티 클래스를 만듭니다.
@Entity @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private int age; // getters and setters }
엔티티 클래스에 @Entity 주석을 사용하여 JPA 엔터티 클래스임을 나타냅니다. @Table 주석은 엔터티 클래스가 매핑되는 데이터베이스 테이블 이름을 지정하는 데 사용됩니다. @Id 주석을 사용하여 엔터티 클래스의 기본 키를 정의하고 @GeneratedValue를 사용하여 기본 키 생성 방법을 지정합니다. @Column 주석은 엔터티 클래스 속성이 매핑되는 데이터베이스 열 이름을 지정하는 데 사용됩니다.
데이터베이스에 액세스하기 위한 간단한 저장소를 만듭니다.
@Repository public interface PersonRepository extends JpaRepository<Person, Long> { }
저장소의 @Repository 주석을 사용하여 이것이 Spring 구성 요소이고 데이터베이스에 액세스하는 데 사용된다는 것을 나타냅니다. PersonRepository는 JpaRepository에서 상속됩니다. 이 인터페이스는 save, findById 등과 같은 많은 일반적인 데이터베이스 작업 메서드를 제공합니다.
서비스에서 데이터베이스 작업을 위해 PersonRepository 사용:
@Service public class PersonService { public void savePerson(Person person) { personRepository.save(person); } public List<Person> getPersons() { return personRepository.findAll(); }
@Service 주석은 서비스에서 비즈니스 로직을 처리하는 데 사용되는 Spring 구성 요소임을 나타내는 데 사용됩니다. 이 예에서는 두 가지 메소드를 정의합니다. savePerson은 Person 객체를 데이터베이스에 저장하는 데 사용되고 getPersons는 모든 Person 객체를 얻는 데 사용됩니다.
HTTP 요청을 처리하기 위한 간단한 컨트롤러 작성:
@RestController public class PersonController { @Autowired private PersonService personService; @PostMapping("/person") public void savePerson(@RequestBody Person person) { personService.savePerson(person); } @GetMapping("/persons") public List<Person> getPersons() { return personService.getPersons(); } }
컨트롤러에서 @RestController 주석을 사용하여 이것이 Spring 구성 요소이고 HTTP 요청을 처리하는 데 사용된다는 것을 나타냅니다. 이 예에서는 두 가지 메소드를 정의합니다. savePerson은 POST 요청을 처리하고 Person 객체를 데이터베이스에 저장하는 데 사용되고, getPersons는 GET 요청을 처리하고 모든 Person 객체를 얻는 데 사용됩니다.
이제 애플리케이션을 시작하고 http://localhost:8080/persons에 액세스하여 모든 Person 개체를 가져올 수 있습니다. 새 Person 개체를 추가해야 하는 경우 POST 요청을 사용하여 http://localhost:8080/person으로 데이터를 보낼 수 있습니다. 모든 것이 정상이면 다음 출력이 표시됩니다.
[{"id":1,"name":"Alice","age":20},{"id":2,"name":" 밥","나이":30}]
위 내용은 SpringBoot 프로젝트에 Hibernate를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!