이번 포스팅에서는 JPA를 공부하기 위해 기본적으로 필요한 데이터베이스를 설치하고 설정하는 방법을 공부해보려합니다.
우리가 사용하게될 데이터베이스는 H2를 사용할 예정이며, 파일 디비로 사용하지 않고 메모리로 사용하도록 할 예정입니다. 공부용 또는 프로토타입용으로 사용하기 아주 적합한 데이터베이스입니다.
이전 #1 포스팅에서 추가했던 Library (Dependency)에 이어서 H2 라이브러리를 추가해야합니다.
# 1. H2 데이터베이스 추가
# 1.1. Libary (Dependency) 추가
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'devbox.jpa'
version = 'step-02'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
runtimeOnly 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('bootBuildImage') {
builder = 'paketobuildpacks/builder-jammy-base:latest'
}
tasks.named('test') {
useJUnitPlatform()
}
기존 #1 포스팅의 build.gradle 파일인 상태에서 runtimeOnly 'com.h2database:h2' 가 추가된 상태입니다.
# 1.2. 데이터베이스 설정
spring:
h2:
console:
enabled: true
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
/src/main/resources 디렉토리가 비어있을텐데, 이 디렉토리에 application.yml 이름으로 신규 파일을 생성합니다.
파일을 생성하면 위 내용의 설정을 그대로 입력합니다. 사용에 용이하도록 간단한 설명을 하면 아래와 같습니다.
spring.h2
└ console.enabled = SpringBoot 서버를 구동했을 때, 콘솔에 로그 출력 여부를 선택합니다.
spring.datasource
└ url = jdbc의 h2 데이터베이스를 메모리(mem)형태로 사용하며, 데이터베이스 이름은 testdb 로 지정합니다.
└ driver-class-name = org.h2.Driver 이라고 입력합니다. 해당 클래스는 데이터베이스마다 이름이 고정되어있습니다.
└ username = 로그인 계정을 입력합니다. 추 후 데이터베이스 툴을 통해 접속할 때 사용될 계정입니다.
└ password = 비밀번호를 입력합니다. 추 후 데이터베이스 툴을 통해 접속할 때 사용될 비밀번호입니다. 입력하지 않으면 비밀번호 없이 접근이 가능합니다.
spring.jpa
└ hibernate.ddl-auto
create | DB가 시작될 때마다 스키마 전체 삭제 후 다시 생성 |
create-drop | DB를 시작할 때 스키마를 생성하며, DB를 종료할 때 스키마 전체 삭제 |
update | 기존 DB와 비교하여 추가된 경우에는 신규로 추가, 컬럼명이나 변수명이 변경된 경우에는 에러 발생 |
validate | 기존 DB와 비교하여 동일하면 실행, 동일하지 않은 경우 에러 발생 |
none | 아무 작업도 하지 않음 |
└ properties.hibernate.format_sql = DB 쿼리를 실행할 때, 콘솔에 출력되는 Query를 이쁘게 변환 해줄것인지 여부를 지정합니다.
위 링크를 통해 Github 로 접속하면 기본 샘플 예제를 다운받아서 확인해볼 수 있습니다.
'백앤드 > Jpa' 카테고리의 다른 글
[Jpa] 실전을 위한 JPA - #4 @GeneratedValue 컬럼 시퀀스 전략 및 성능 개선(튜닝) (0) | 2023.12.25 |
---|---|
[Jpa] 실전을 위한 JPA - #3 엔티티(Entity) 기본 어노테이션 (0) | 2023.12.09 |
[Jpa] 실전을 위한 JPA - #1 프로젝트 생성 (1) | 2023.11.20 |