본문 바로가기
Java Spring/MVC

[Spring] H2 in-memory DB 사용하기

by GGShin 2022. 6. 28.

H2 database는 Java 언어로 되어 있는 관계형 데이터베이스 관리 시스템입니다. in-memory database이며 용량이 가벼운 편이기에 애플리케이션 테스트에 많이 사용되고 있다고 합니다. 

 

H2 DB 사용 시작하기

H2를 사용하려면 spring dependency에 h2 dependency를 추가하여야 합니다. Spring project를 만들 때 초기 dependency 설정 시에 미리 추가해주면 됩니다. Maven을 사용하는 경우는 아래와 같이 dependency가 설정되어 있을 것입니다. 

 

<dependency>
	<groupId>com.h2database</groupId>
	<artifactId>h2</artifactId>
	<scope>runtime</scope>
</dependency>

 

그리고 application.properties에 아래 항목을 추가해줍니다.

 

spring.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=USER
spring.h2.console.enabled=true
spring.data.jpa.repositories.bootstrap-mode=default
spring.jpa.defer-datasource-initialization=true

 

이렇게 기본적인 항목들을 추가해 준 이후에 application을 run해보면, 

 

 

/h2-console로 h2 db가 활성화되어 있음을 확인할 수 있습니다.

localhost:8080/h2-console 으로 들어가보면

 

 

h2 db로 들어갈 수 있는 창이 활성화되어 있고, connect를 누르면 db를 이용할 수 있게 됩니다.

 

h2 db 화면

 

DataTable 만들기

 

h2 console로 들어가서 table을 만들어서 사용할 수도 있지만, in-memory db의 특성 상 application이 종료되면 데이터가 모두 지워지게 됩니다. test용으로 데이터가 필요한데 매번 애플리케이션을 실행할때 마다 데이터를 수동으로 추가해주어야 하면 너무 번거롭겠죠. 그럴때는 sql file을 만들어 놓고 데이터를 자동으로 생성하도록 해두고 사용하는 것이 편리합니다. 

 

먼저 resources directory 안에 sql 파일을 만들어주고 (class 파일 만들듯이 마우스 우클릭 한 다음 file을 선택해서 만들되 확장자명을 .sql로 해주면 됩니다!) 그 안에 쿼리문을 작성해주면 됩니다.

 

 

이런식으로 테이블도 만들어 두고, 테이블 안에 들어가는 데이터도 insert하는 쿼리문도 같이 만들어 두면 

매번 쿼리문을 작성하지 않아도 됩니다.

 

추가적인 내용이 생기면 이어서 작성하도록 하겠습니다.

감사합니다 ☺️

반응형

'Java Spring > MVC' 카테고리의 다른 글

Entity mapping-Cascade의 역할  (0) 2022.07.17
[Spring] Spring JDBC 사용하기  (0) 2022.07.02
[Spring] Servlet과 Servlet Container  (0) 2022.06.24
[Spring] Spring MVC framework 알아보기  (4) 2022.06.24
[Spring] 계층 이해하기  (0) 2022.06.23