백엔드
[Database] 스프링부트(SpringBoot)에서 H2 데이터베이스 사용하기
연유뿌린빙수
2024. 9. 3. 19:59
https://phantom.tistory.com/59
[H2DB] H2 Database 설치 및 사용법
H2DB 란 H2 데이터베이스는 설치가 필요 없고 용량이 가벼우며 개발용 로컬 DB로 사용하기 좋은 DBMS이다. H2DB는 자바 기반의 오픈소스 관계형 데이터베이스 관리 시스템(DBMS). 서버(Server) 모드와 임
phantom.tistory.com
위의 링크를 참고하였습니다.
H2란?
- 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
DB connector 중 하나인데, 대용량이 아닌 빠르고 인메모리 데이터베이스이기 때문에
혼자 소규모로 작업을 할 때 자주 사용하는 DB입니다
프로그램이 돌아갈 때 RAM에서 저장이 됩니다!( MySQL이나 Oracle과 같은 일반적인 DB connector와는 다름 )
생성이 쉽고 간편하며,
서버 모드로 사용하는 것이 편리하기에 자주 사용합니다
application.yml 설정
spring:
h2:
console:
enabled: true
path: /h2-console
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:db;
username: sa
password:
jpa:
generate-ddl: 'true'
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
use_sql_comments: true
logging.level:
org.hibernate.SQL: debug
org.hibernate.type: trace
SpringBoot에서 다음과 같이 JDBC 속성을 작성해주면 됩니다
- spring.h2 설정
- h2의 웹 콘솔을 프로젝트 구동시 사용하겠다고 설정
- path : http://localhost:8080/으로 스프링 프로젝트가 돌아가고 있다면, http://localhost:8080/h2-console 이라고 입력하면 h2-console로 웹 접근이 가능
- spring.datasource 설정
- driver-class-name: h2 드라이버를 사용함을 지정
- url : 기본적인 경로는 jdbc:h2:mem 이고, 직접 DB를 생성하였다면 h2-console로 접근하여 확인해보기
- username: h2의 기본적인 사용자명은 sa입니다
- spring.jpa 설정
- ddl에 대하여 true로 설정하면, 스프링부트에서의 JPA 기능을 가능하게 하는 것으로 Entity를 기반으로 테이블을 자동으로 생성하는 것을 설정하는 것입니다
- hibernate.ddl-auto: 어플리케이션 실행과 관련하여 생성되는 테이블에 대한 설정입니다
- create : 프로그램을 구동할 때마다 테이블을 생성해줍니다
- update: 프로그램을 구동할 때마다 기존의 테이블을 유지하면서 변경된 필드(테이블의 컬럼)만 반영
- create-drop : 프로그램을 구동하고, 이를 종료하면 테이블도 삭제되는 설정
- properties: 이를 통하여 우리의 콘솔 창에서 sql 쿼리문을 직접 확인할 수 있습니다.
- logging.level : 콘솔에 출력되는 로그에 대한 설정입니다. DEBUG로 해야 다양한 에러의 원인을 파악하기 좋습니다.