H2 데이터 베이스 연결(*.yml)공부/DB2023. 6. 30. 16:40
Table of Contents
반응형
초기 개발 환경에서 h2 inmemory 데이터 베이스를 활용하여 테이블 생성 및 샘플 데이터 입력할 수 있도록 설정 수행
1. 의존성 추가 (build.gradle)
dependencies {
// spring boot
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// h2
runtimeOnly 'com.h2database:h2'
}
2. application.yml 작성
- (주의) 파일명이 틀리거나, yml 파일내에 들여쓰기가 잘못될 경우 정상 동작하지 않을 수 있음
- ddl-auto 의 경우 default 로 none을 설정하고 profile에 따라 분기됨
=> 프로덕션에서 ddl-auto 활성화 되면 큰 사고로 이어지니 좋은 방식인 듯 하다
spring:
profiles:
default: local
datasource:
url: jdbc:h2:mem:~/testdb
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: none
server:
port: 8080
---
spring:
config:
activate:
on-profile: local
jpa:
hibernate:
ddl-auto: create
show-sql: true
properties:
hibernate:
format_sql: true
defer-datasource-initialization: true
database-platform: org.hibernate.dialect.H2Dialect
h2:
console:
enabled: true
3. sql scripts 사용한 데이터 초기화
- spring boot 2.5 이후 부터 아래 속성 추가됨
- Hibernate 초기화 이후 main/resource/{scheme||data}.sql 파일을 실행하도록 하는 설정
spring.jpa.defer-datasource-initialization: true
참고. 공식 reference
참고. h2 모드에 대해
- Embedded mode
- Server mode
- Mixed mode
Embedded Mode(임베디드 모드)
In embedded mode, an application opens a database from within the same JVM using JDBC. This is the fastest and easiest connection mode. The disadvantage is that a database may only be open in one virtual machine (and class loader) at any time ....
Spring Application 구동시 JVM 안에 임베디드 모드 데이터 베이스가 실행된다. (휘발성)
https://www.h2database.com/html/features.html#connection_modes
4. h2 콘솔 접속 및 확인
http://localhost:포트번호/h2-console
반응형
'공부 > DB' 카테고리의 다른 글
[MySQL] transaction isolation 이상현상 3가지(Dirty Read, Non-Repeatable Read, Phantom Read) (1) | 2024.04.30 |
---|---|
[Mysql v5.7] regexp_replace function 생성, 문자열 내 숫자 검출 (0) | 2022.04.06 |
[DA# Modeler] Mysql 연결해서 논리/물리 ERD 생성하기 (0) | 2022.03.12 |
[MySql Workbench] SSH 터널링 통해 DB 연결하기 (0) | 2022.02.25 |
[DBeaver] SQL자동완성풀기, 행번호표시, 컬럼설명표시, 단축키 확인 및 설정 (0) | 2021.10.12 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!