[java] 자바 스프링 부트 JPA 사용 방법

자바 개발자들은 스프링 부트 프레임워크를 통해 JPA(Java Persistence API)를 사용하여 데이터베이스와의 상호 작용을 간편하게 합니다. JPA는 객체-관계 매핑(ORM)을 제공하여 데이터베이스 테이블과 자바 객체 간의 매핑을 지원합니다.

1. 의존성 추가

Maven 또는 Gradle 프로젝트에서 pom.xml 또는 build.gradle 파일에 다음과 같이 스프링 부트 JPA 의존성을 추가합니다.

Maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Gradle:

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

2. 데이터베이스 설정

application.properties 또는 application.yml 파일을 사용하여 데이터베이스 연결 정보를 설정합니다.

application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update

application.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_example
    username: springuser
    password: ThePassword
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    database-platform: org.hibernate.dialect.MySQL5Dialect
    hibernate:
      ddl-auto: update

3. 엔티티 클래스 작성

데이터베이스 테이블과 매핑될 엔티티 클래스를 작성합니다. 여기서는 간단한 예제로 User 엔티티를 생성합니다.

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;
    private String email;

    // getters and setters
}

4. 레포지토리 인터페이스 작성

JpaRepository 인터페이스를 확장한 인터페이스를 작성하여 데이터베이스 작업을 수행할 수 있습니다.

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    // custom query methods can be defined here
}

5. 서비스 및 컨트롤러 작성

필요에 따라 서비스 및 컨트롤러를 작성하여 비즈니스 로직 및 API 엔드포인트를 구현합니다.

이렇게 스프링 부트 JPA를 사용하여 데이터베이스와의 상호 작용을 구현할 수 있습니다. JPA는 많은 일상적인 데이터베이스 작업을 추상화하여 개발자들이 간편하게 데이터베이스를 다룰 수 있도록 도와줍니다.

참고 문헌:

이상으로 JPA를 사용한 스프링 부트 개발 방법에 대해 알아보았습니다.