본문 바로가기

Springboot

스프링 부트에서 H2 DB 연결하기

728x90

스프링 부트에서 H2 DB를 연결하는데 여러 속성을 이해하기로 했다.

먼저 application.properties 파일에서 DB 연결에 대한 설정을 해야한다.

하나씩 살펴보자.

 

spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:~/Documents/coding/codesquad/mission2/be-java-cafe/db/be-java-cafe;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:templates/schema.sql

 

1. 데이터베이스 드라이버 클래스 이름을 지정하기

spring.datasource.driverClassName=org.h2.Driver

이 속성을 통해 프로젝트에 사용할 데이터베이스 드라이버를 설정할 수 있다. 해당 속성으로 스프링 부트에서 드라이버를 자동으로 로드한다. 만약 이 속성을 설정하지 않으면 스프링 부트에서는 기본적으로 사용 가능한 드라이버를 로드할 것이다.

스프링 부트는 대부분의 데이터 베이스 드라이버 클래스를 미리 내장하고 있다. 따라서 스프링 부트 프로젝트에서 데이터베이스 연동을 위한 의존성만 추가하면 해당 데이터 베이스를 사용할 수 있다. 만약 스프링 부트에서 H2 데이터베이스를 사용하려면, 별도로 H2 JDBC 드라이버를 다운로드하고 설치할 필요 없이, 스프링 부트의 의존성 관리 기능을 이용하여 H2 데이터베이스 연동을 위한 의존성만 추가하면 된다.

 

스프링 부트가 내장하고 있는 데이터베이스 드라이버 클래스 종류는 다음과 같다.

- H2 (org.h2.Driver)

- MySQL (com.mysql.cj.jdbc.Driver)

- MariaDb (org.mariadb.jdbc.Driver)

- Oracle (oracle.jdbc.OracleDriver)

등등...

 

2. H2 데이터베이스 파일의 저장 위치를 설정하기

spring.datasource.url=jdbc:h2:~/Documents/coding/cafe-db;DB_CLOSE_ON_EXIT=FALSE

H2 데이터베이스 파일 저장 위치를 설정한다. '~/'는 홈 디렉토리를 나타낸다. 이후 H2 DB 파일이 저장될 url을 지정하면 된다. 위 url의 경우, Documents/coding/ 디렉토리 내에 'cafe-db.mv.db' 파일이 생성된다. 주의해야 할 점은, url의 마지막 이름은 디렉토리명이 아니라 생성될 DB 파일명이 된다는 것이다. 해당 경로에 해당 DB가 없으면 새롭게 생성된다.

 

뒤에 DB_CLOSE_ON_EXIT 옵션은 애플리케이션이 종료될 때 데이터베이스 연결 여부를 설정하는 것이다. 만약 FALSE로 지정하면 앱이 종료될 때 데이터베이스 연결을 닫지 않겠다는 의미이다. 이렇게 하면 애플리케이션이 다시 시작될 때 데이터베이스 연결을 다시 열 필요가 없다.

 

3. H2 데이터베이스 사용자 이름과 비밀번호 설정하기

spring.datasource.username=sa
spring.datasource.password=

데이터베이스 사용자 이름과 비밀번호를 설정한다.

 

4. H2 데이터베이스 콘솔 기능을 설정하기

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.h2.console.enabled=true : H2 데이터베이스 콘솔 기능이란, H2 데이터베이스를 사용할 때 웹 브라우저에서 H2 데이터베이스를 쉽게 관리할 수 있는 기능이다. 만약 enable 값을 false로 바꾸면 아예 페이지가 로드되지 않는다.

H2 데이터베이스 콘솔 기능

 

spring.h2.console.path=/h2-console : H2 데이터베이스 콘솔의 URL 주소를 설정한다. 이 설정을 추가하면 "/h2-console" 로 접속해서 H2 데이터베이스 콘솔을 사용할 수 있다.

 

5. 데이터베이스 초기화를 위한 설정하기

spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:templates/schema.sql

spring.sql.init.mode=always : 애플리케이션이 실행될 때마다 SQL 파일을 실행한다. 

spring.sql.init.schema-locations=classpath:templates/schema.sql : 애플리케이션 시작 시 실행할 SQL 파일의 경로를 지정한다. 즉, 애플리케이션을 실행할 때마다 애플리케이션 내부에 있는 templates 디렉토리에 있는 'schema.sql' 파일을 실행한다.