티스토리 뷰
Dependency( Gradle )
implementation 'com.h2database:h2'
H2 embedded 모드
spring:
datasource:
url: jdbc:h2:mem:testdb
username: sa
driver-class-name: org.h2.Driver
h2:
console:
enabled: true
H2 file 모드
Test 코드에서는 file에 데이터가 남지 않는다.
그냥 앱 실행을 하면, file에 데이터가 남아 있다.
그리고 Test 코드에서 ddl-auto를 create 로 했는데, 실제 테스트 돌아갈때 drop table을 하는데도 기존 데이터가 날아가지 않고 있다
앱 실행 시에는 drop 해서 파일에 있는 것이 다 날아감.
테스트 모드에서 실행하면, 임베디드 상태로 돌아가는것 처럼 보임.
H2 Server 모드
서버모드로 동작 하기 위해서는 H2 데이터베이스를 별도로 띄워주어야 합니다.
아래 방법을 따라서 먼저 설치 및 H2 데이터베이스를 수행해줍니다.
최신 버전 설치( Mac 기준 )
터미널에서 아래 명령어로 h2를 설치하고 실행합니다.
# h2 설치
$ brew install h2
# h2 실행
$ h2
브라우저에서 localhost:8082로 접속하면, 아래와 같은 접속 화면이 뜹니다.
Connect를 눌러 연결합니다.( test 라는 데이터 베이스가 생성되며 접속이 됩니다. )
연결하면 데이터베이스를 조회하고 쿼리를 수행할 수 있는 화면이 나옵니다.
Generic H2 (Embedded) 로 먼저 데이터베이스를 생성해 두지 않으면, Generic H2 (Server)나 외부 애플리케이션에서 서버모드로 접속시 아래 콘솔화면 같이 에러가 나거나 애플리케이션에서도 비슷한 문구의 에러가 발생하게 됩니다.
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "/Users/xxxx/testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200]
Spring
아래와 같이 application.yml 을 설정해 어플리케이션을 실행해주면 됩니다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/testdb
username: sa
driver-class-name: org.h2.Driver
그리고 H2 콘솔에서 데이터 베이스를 조회해보면 데이터가 잘 들어갔는지 확인이 가능합니다.
참고로, 현재 최신 버전은 1.4.200 이고, 최신 안전화 버전은 1.4.199 입니다.
해당 버전은 아래 링크로 접속하여 설치 가능합니다.
https://www.h2database.com/html/download.html
'Spring' 카테고리의 다른 글
Spring Controller에서 가변 json body 받기 (0) | 2021.08.10 |
---|---|
IntelliJ + Gradle + JUnit 사용시 에러( package org.junit does not exist ) (1) | 2021.06.04 |
[ SpringBoot ] Yaml 파일 포맷 과 값 읽기 (0) | 2020.08.24 |
Spring Cloud 호환 버전 (0) | 2020.08.14 |
[ Spring ] Cloud Config 구축하기(1) (4) | 2020.07.29 |
- Total
- Today
- Yesterday
- plugin
- docker
- mac
- logstash
- error
- Filter
- spring
- Spark
- AWS
- intellij
- JPA
- apm
- Container
- Kibana
- Postman
- Index
- Log
- Size
- Git
- tomcat
- install
- JSON
- spring boot
- scala
- elasticsearch
- Linux
- SpringBoot
- Java
- gradle
- maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |