이번에는 h2 DB 연결방법을 포스팅해 본다.
h2 DB는 RDBMS 지만 in-memory 방식
이다.
즉, 인 메모리 데이터베이스의 경우 데이터는 시스템 메모리에 저장되며 프로그램을 끄면 데이터가 없어져 버린다. 일반적으로 Test 용도로 쓰이는 데이터베이스로 많이 사용된다.
참고)
H2 데이터베이스의 GenerationType은SEQUENCE
이다.
@GeneratedValue(strategy = GenerationType.SEQUENCE)
- 데이터베이스 시퀀스는 유일한 값을 순서대로 생성하는 특별한 데이터베이스 오브젝트이다. SEQUENCE 전략은 이 시퀀스를 사용하여 기본키를 생성한다. 주로 오라클, PostgreSQL, DB2, H2 데이터베이스에서 사용할 수 있다.
https://hyeonic.tistory.com/m/196
runtimeOnly 'com.h2database:h2'
// test에서 lombok 사용
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test;MODE=MySQL;
username: sa
password:
Download > All Downloads > Archive Downloads
에 들어간다.
h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. - 현재 1.4.200
버전을 다운로드 받으면 된다.
다음 링크에 가면 다양한 H2 다운로드 버전을 확인할 수 있다.
https://www.h2database.com/html/download-archive.html
들어가는 방법은 윈도우 검색창에 h2-console
에 치면 들어가진다.
(나오게 할려면 먼저 h2.bat
실행)
인텔리제이 DataSources 셋팅
사용자명은 sa
입력
JDBC URL
에 다음 입력,
jdbc:h2:~/test (최초 한번)
이 경우 연결 시험
을 호출하면 오류가 발생한다. 연결 을 직접 눌러주어야 한다.
~/test.mv.db
파일 생성 확인
이후부터는 jdbc:h2:tcp://localhost/~/test
이렇게 접속할 수 있다.
test.mv.db
생성됨을 확인할 때는,
C:\Users\{사용자계정이름}
폴더에 있을 것이다.
스프링부트에서 application yml을 통해 간단하게 설정하는 방법
은 다음과 같다.
spring:
h2:
console:
enabled: true
jpa:
database-platform: org.hibernate.dialect.H2Dialect
open-in-view: false
hibernate:
ddl-auto: create
properties:
hibernate:
show_sql: true
format_sql: true
spring:
h2:
console:
enabled: true
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test;MODE=MySQL;
username: sa
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
open-in-view: false
hibernate:
ddl-auto: create
properties:
hibernate:
show_sql: true
format_sql: true
프로젝트를 실행시 Run console에 JDBC URL
이 나오게 되있다.
H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:26b18340-687a-410e-9653-c8c5acf95356'
그리고
http://localhost:8080/h2-console 접속
Run console에 나온 JDBC URL을 입력한다.
드디어 h2 웹콘솔로 들어가진다.