> Java > java지도 시간 > SpringBoot 프로젝트에 Hibernate를 통합하는 방법

SpringBoot 프로젝트에 Hibernate를 통합하는 방법

WBOY
풀어 주다: 2023-05-18 09:49:23
앞으로
1668명이 탐색했습니다.

Spring Boot 프로젝트에 Hibernate 통합

서문

Hibernate는 편리한 지속성 작업을 위해 Java 객체를 데이터베이스 테이블에 매핑할 수 있는 널리 사용되는 ORM(Object Relational Mapping) 프레임워크입니다. Spring Boot 프로젝트에서 Hibernate를 통합하면 데이터베이스 작업을 더 쉽게 수행하는 데 도움이 될 수 있습니다. 이 기사에서는 Spring Boot 프로젝트에 Hibernate를 통합하는 방법을 소개하고 해당 예제를 제공합니다.

1. 종속성 소개

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의 핵심 종속성입니다.

2. 데이터 소스 구성

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은 애플리케이션이 시작될 때마다 테이블이 생성되고 애플리케이션이 실행되면 테이블이 삭제된다는 의미이다. 닫은.

3. 엔터티 클래스 만들기

데이터베이스 테이블에 매핑하기 위한 간단한 엔터티 클래스를 만듭니다.

@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 주석은 엔터티 클래스 속성이 매핑되는 데이터베이스 열 이름을 지정하는 데 사용됩니다.

4. 저장소 만들기

데이터베이스에 액세스하기 위한 간단한 저장소를 만듭니다.

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
}
로그인 후 복사

저장소의 @Repository 주석을 사용하여 이것이 Spring 구성 요소이고 데이터베이스에 액세스하는 데 사용된다는 것을 나타냅니다. PersonRepository는 JpaRepository에서 상속됩니다. 이 인터페이스는 save, findById 등과 같은 많은 일반적인 데이터베이스 작업 메서드를 제공합니다.

5. 비즈니스 코드 작성

서비스에서 데이터베이스 작업을 위해 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 객체를 얻는 데 사용됩니다.

6. HTTP 요청을 처리하기 위한 컨트롤러 작성

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 객체를 얻는 데 사용됩니다.

7. 애플리케이션 실행

이제 애플리케이션을 시작하고 http://localhost:8080/persons에 액세스하여 모든 Person 개체를 가져올 수 있습니다. 새 Person 개체를 추가해야 하는 경우 POST 요청을 사용하여 http://localhost:8080/person으로 데이터를 보낼 수 있습니다. 모든 것이 정상이면 다음 출력이 표시됩니다.

[{"id":1,"name":"Alice","age":20},{"id":2,"name":" 밥","나이":30}]

위 내용은 SpringBoot 프로젝트에 Hibernate를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿