[Spring] 스프링에서 h2 사용

h2

h2는 인메모리 관계형 데이터베이스로 스프링 프로젝트를 사용할 때 자주 쓰인다.

h2의 특징 및 장점

  • 인메모리 DBMS 중 HSQL(HyperSQL)
  • 별도의 설치가 필요 없다.
  • 간단한 의존성 추가만으로 사용할 수 있음
  • Maven 기반의 프로젝트에선 pom.xml에 HSQL에 대한 의존성 추가로 사용 가능
  • Gradle 기반의 프로젝트에선 build.gradle 에서 com.h2database:h2 의존성 추가로 사용 가능
  • 메모리에서 실행 -> 애플리케이션을 종료하고 다시 시작하면 초기화됨

이 포스트에선 Gradle 기반의 스프링에서 h2를 사용해보자.

build.gradle

dependencies {
    /...
    compile('com.h2database:h2')
    /...
}

위와 같이 build.gradle에 의존성을 추가해 주고 Gradle에 반영해 준다.

쿼리 날리기

각자 개발하는 방식으로 쿼리를 날린다.
이 프로젝트에서는 JPA를 이용해 쿼리를 날렸다.

웹 콘솔 옵션 활성화

src -> main -> resources -> application.propoerties

에 들어간 뒤, 다음 옵션을 입력해 준다.

spring.h2.console.enabled=true

접속

http://localhost:8080/h2-console/

로 접속한다.

1

JDBC URL이 jdbc:h2:mem:testdb인지 확인한다.
다르다면 위 URL로 수정해 준 뒤 Connect를 클릭한다.

2

위와 같이 실행되고, 쿼리를 날렸던 테이블이 생성되었다.

3

테이블을 누르면 목록을 조회할 수 있는 쿼리문이 나오고, 상단에 Run을 누르면 데이터를 보여준다.

좌측에 있는 데이터 메뉴를 누르면 각 메뉴에 대한 쿼리문이 나오고 이를 Run으로 확인할 수 있다.

초기화

4

이러한 특정 자료를 넣었을 때, 서버를 종료하고 다시 실행시켜보자.

5

데이터가 초기화되었다.