백엔드

[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 쿼리문을 직접 확인할 수 있습니다.

hibernate ture로 설정했을 때의 콘솔 출력 예시

  • logging.level : 콘솔에 출력되는 로그에 대한 설정입니다. DEBUG로 해야 다양한 에러의 원인을 파악하기 좋습니다.