본문 바로가기
스프링부트 프로젝트

스프링부트 h2 데이터베이스 세팅

by Nicole 2023. 11. 11.

 MySQL 같은 큰 데이터베이스를 연결할 수 있지만, 연습용으로는 경량 데이터베이스인 h2를 많이 사용한다.

이번 포스팅에서는 h2 데이터베이스를 연동해보려고 한다.

 

1. h2 데이터베이스 dependencies에 추가

위와 같이 h2 데이터베이스를 dependency에 추가해 라이브러리를 설치해준다. 

'runtimeOnly' 는 이 라이브러리가 런타임시에만 필요한 경우에 사용한다.

작성 후에는 buid.gradle 파일 우클릭 > Gradle > Refresh Gradle Project 를 실행해준다.

 

 


 

 

2. 환경설정

스프링부트 프로젝트에서 여러 폴더 중 src/main/resources는 HTML, CSS, Javascript, 환경파일등을 저장하는 공간인데, 그 중 application.properties는 스프링부트 프로젝트의 '환경설정'을 담당하는 파일이다.

이 파일은 처음에는 빈 파일인데, h2 데이터베이스를 사용하기 위한 환경설정을 추가해준다

# DATABASE
spring.h2.console.enabled=true // h2 콘솔 접속 허용
spring.h2.console.path=/h2-console // h2 콘솔에 접근하는 url path
spring.datasource.url=jdbc:h2:~/local // DB 접속 경로
spring.datasource.driverClassName=org.h2.Driver // DB 접속 시 사용하는 드라이버
spring.datasource.username=sa // DB 사용자명은 'sa' 라는 디폴트값 사용
spring.datasource.password= // PW는 로컬환경에서 설정하지 않을 예정

 

위와 같이 작성한 후 home directory에 기본 db 파일을 작성해준다.

Windows 운영체제의 경우, cmd 창이 기본 홈 디렉토리로 설정되어 있으니, 아래와 같은 커맨드를 작성해준다.

copy con local.mv.db

 

copy con 명령어는 윈도우에서 파일을 생성하는 명령어이다.

이후는 생성하는 db 파일 명이다.

ctrl z + enter 누르면 생성된다.

 

스프링부트 로컬서버를 재시작 후  localhost:8080/h2-console 경로에서 h2 콘솔을 볼 수 있다.

한국어를 지원하니 좌측 상단의 언어도 바꿔도 된다.

JDBC URL을 생성한 파일명인 'local' 로 변경해준 뒤 'Connect' 를 클릭하면 해당 URL에서 다음과 같은 화면에 접근이 가능해진다.

 

 

 


 

 

3. JPA  환경설정

우선 JPA  환경설정 이전에 잠시 JPA가 무엇인지 정리하려고 한다.

1) Java의 ORM 표준으로, 인터페이스의 모음이다.

2) JDBC*와 애플리케이션 사이에서 작동한다.

개발자가 JPA 사용 - JDBC API 내부 작동, SQL 호출 - DB 통신

 

* JDBC(Java Database Connectivity) 는 Java 기반 API로, JDBC API를 통해 Java 애플리케이션에서 데이터베이스에 연동하고, db를 조작할 수 있다.

 

STS 에서 다시 build.gradle 파일로 들어가고 dependencies에 추가하고 refresh 해준다

 

'implementation' 세팅은 프로젝트가 업데이트 되었을 때, 직접 프로젝트와 관련있는 모듈만 rebuild하며,

compile,  runtime 둘 다 케이스에 사용되는 라이브러리에 적용하는 세팅이다.

 

그리고 application.properties 파일에서 JPA 환경설정을 추가해준다.

# JPA
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect // db 엔진 종류 설정
spring.jpa.hibernate.ddl-auto=update // 엔티티 기준 테이블 생성 규칙 정의. 엔티티 update시 변경부분만 테이블에 적용

 

여기까지 진행하면 h2 데이터베이스를 이용하는 기본 세팅이 갖춰진다.

댓글