반응형

1. 시험환경

    ˙ Spring Boot

    ˙ Spring-Data-JPA

    ˙ MariaDB

 

2. 목적

    ˙ Spring Data JPA 설정하는 방법을 알아보자.

    ˙ Entity와 Repository만 작성하여 DB 테이블을 생성한다.

    ˙ Spring 프로젝트 실행 시 data.sql 초기 데이터를 Insert 한다.

 

3. 적용

    의존성 패키지를 설치한다.

        - src/build.gradle

1
2
3
4
5
6
7
8
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
cs

 

    MariaDB 연결 및 JPA 설정 부분을 작성한다.

        - src/main/resources/application.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
spring:
  datasource:
    url: jdbc:mariadb://[IP:PORT]/[DB]?characterEncoding=UTF-8
   username: [ID]
   password: [PASSWORD]
  jpa:
    defer-datasource-initialization: true
    hibernate:
      ddl-auto: create
      show-sql: true
    properties:
      hibernate.format_sql: true
      hibernate.default_batch_fetch_size: 100
  sql:
    init:
      mode: always
cs

 

    ② DB 테이블과 매치된 클래스인 Entity를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.example.datarest.domain;
 
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
 
 
@Entity
@Getter
@ToString
public class Nation {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
 
  @Setter
  private String nation;
 
  @Setter
  private int population;
 
  @Setter
  private String lang;
 
  @Setter
  private String currency;
 
}
cs

 

    ③ CRUD를 위한 Repository 인터페이스를 생성한다.

1
2
3
4
5
6
7
8
9
package com.example.datarest.repository;
 
import com.example.datarest.domain.Nation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 
@RepositoryRestResource
public interface NationsRepository extends JpaRepository<Nation, String> {
}
cs

 

    ④ Entity 매핑 테이블에서 사용할 데이터를 작성한다.

        - src/main/resources/data.sql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
insert into nation (nation, population, lang, currency) values
('America'50000'English''Dollar')
;
 
insert into nation (nation, population, lang, currency) values
('Swizerland'2000'Swiss''Frank')
;
 
insert into nation (nation, population, lang, currency) values
('England'60000'English''Found')
;
 
insert into nation (nation, population, lang, currency) values
('Italiy'4000'Italian''Euro')
;
cs

 

4. 결과

    ˙ Spring Boot 프로젝트를 실행 후 DB에서 Entity 매핑 테이블과 데이터가 초기화 되었는지 확인한다.

 

    ˙ 프로젝트 파일 다운로드

data-jpa-example.zip
0.12MB

반응형

+ Recent posts