반응형
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 매핑 테이블과 데이터가 초기화 되었는지 확인한다.
˙ 프로젝트 파일 다운로드
반응형
'스프링 프레임워크' 카테고리의 다른 글
JPA Repository에서 Data Pageable 기능 구현 (0) | 2023.05.03 |
---|---|
Spring Data Rest를 이용하여 Rest API 구축하기 (0) | 2023.05.01 |
Springboot 프로젝트와 React.js 프로젝트 연동 배포 (0) | 2023.03.13 |
Springboot 프로젝트와 React.js 프로젝트 연동 설정 (0) | 2023.03.13 |
springboot, mybatis, MySQL 연동 프로젝트 생성, 설정 및 예제 코드 (0) | 2023.03.09 |