[DB] H2 데이터베이스

2023. 2. 23. 01:47기술 창고/DataBase

728x90
SMALL

H2는 Java 기반의 관계형 데이터 베이스(RDBMS)이다.

서버 모드와 임베디드 모드의 인메모리 DB 기능을 지원한다.

 

브라우저 기반의 콘솔모드를 사용할 수 있고, 별도의 추가적이고 복잡한 설치과정이 필요없고 용량도 매우 적어 사용하기 간편하다.

H2의 작동 혹은 어플리케이션을 실행한 서버를 끄게 되면 DB에 저장된 내용들은 사라지게 된다.

JDBC api 또한 지원하기 때문에 사용하기 편리하다.

MYSQL과 같은 표준 SQL을 지원한다.

위와 같은 특징들 때문에 어플리케이션 개발 단계의 테스트 DB로서 많이 사용된다.

 

 


H2 사용법 (Feat. 연동 방법)

(1) H2 DB installer 다운

https://www.h2database.com/html/main.html

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supp

www.h2database.com

H2 다운로드 사이트에 들어간다.

 

installer를 다운받고 설치한다.

 

 

(2) H2 dependency 추가

개발하고 있는 프로젝트의 build.gradle에 H2 데이터베이스 dependency를 추가한다.

해당 dependency는 mavenrepository 사이트에서 찾을 수 있다.

추가해준 뒤, gradle 코끼리 아이콘을 눌러 dependeny를 추가 적용해준다.

 

 

(3) application.properties 설정 추가

# H2 JDBC URL, 인메모리 방식으로 저장하며 minigreeting 이라는 데이터베이스를 생성하고 MYSQL 모드로 사용하겠다는 설정
spring.datasource.url=jdbc:h2:mem:minigreeting;MODE=MYSQL  
# H2를 사용하기위한 드라이버 설정
spring.datasource.driver-class-name=org.h2.Driver
# H2 계정 ID (여기서 사용하고자 하는 ID를 만들어주는 것)
spring.datasource.username={ID}
# H2 계정 비밀번호 (여기서 사용하고자 하는 비밀번호를 만들어주는 것. 공백 가능)
spring.datasource.password={비밀번호}

# H2 콘솔을 사용하겠다는 설정
spring.h2.console.enabled=true

# 브라우저에서 콘솔에 진입하기 위한 경로 (http://localhost:8080/console 로 브라우저 url 창에 입력하면 콘솔로 진입)
spring.h2.console.path=/console
spring.h2.console.settings.web-allow-others=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

application.properties에 해당 설정들을 추가해준다.

위의 H2 설정들 외에 기존에 사용하고 있던 DB 설정들이 존재했다면 주석 처리하고 추가해준다.

 

 

(4) 인텔리제이 Database 연동

인텔리제이 오른쪽 사이드에 있는 Database 탭에서 + 를 눌러 DataSource 항목의 H2 데이터베이스를 눌러준다.

 

  • Name : H2 데이터베이스 이름 지정 (아무거나 가능)
  • User : application.properties 에 설정한 H2 계정 ID
  • Password : application.properties 에 설정한 H2 계정 비밀번호
  • Database : application.properties 에 설정한 데이터베이스 이름 (spring.datasource.url 에 기입한 minigreeting이 내 데이터베이스 이름)
  • URL : application.properties 에 설정한 spring.datasource.url에 넣은 정보 그대로 입력

설정값을 전부 입력했다면 하단의 Test Connection 을 눌러 연결이 정상적으로 되는지 확인하고 연결한다.

 

그 다음 어플리케이션을 실행한다.

 

 

(5) 브라우저 콘솔 진입

http://localhost:8080/console 을 브라우저 주소 창에 입력하여 콘솔에 진입한다.

여기서 /console은 application.properties에서 설정한 spring.h2.console.path 에 기입한 경로이다.

콘솔에 진입하면 위와 같은 초기 페이지가 나온다.

Driver Class , JDBC URL , User Name, Password 모두 프로젝트 application.properties에 설정한 값을 동일하게 넣어준다.

Connect로 진입을 시도한다.

 

진입에 성공하면 위와 같은 SQL 을 작성할 수 있는 화면이 나온다.

왼쪽은 프로젝트에서 생성한 Entity들. 즉, 생성한 테이블들이다.

 

 

(6) 정상 동작 확인

어플리케이션을 실행한 상태이니 만들어놓은 api를 실행하고 테이블에 데이터가 적용이 되었는지 Select 문으로 간단하게 확인한다.

정상적으로 데이터가 반영되었다.

728x90
반응형
LIST