본문 바로가기

Backend/Spring | SpringBoot

[Spring] H2 및 JPA Properties적용

반응형

 

# properties Case
server.por=8080 # 내장 톰캣 포트번호

# H2 Database 설정
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:test   # H2 DB 연결 주소 (In-Memory Mode)
#spring.datasource.url='jdbc:h2:~/test'    # H2 DB 연결 주소 (Embedded Mode)
spring.datasource.username=username        # H2 DB 접속 ID (사용자 지정)
spring.datasource.password=password        # H2 DB 접속 PW (사용자 지정)

# H2 Console 설정
spring.h2.console.enabled=true           # H2 Console 사용 여부
spring.h2.console.path=/h2-console       # H2 Console 접속 주소

# JPA 설정
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create        # DB 초기화 전략 (none, create, create-drop, update, validate)
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.properties.hibernate.format_sql=true      # 쿼리 로그 포맷 (정렬)
spring.jpa.properties.hibernate.show_sql=true        # 쿼리 로그 출력



# yml Case
server:
  port: 8080 # 내장 톰캣 포트번호

spring:
  # H2 Database 설정
  datasource:
    driver-class-name: org.h2.Driver
    url: 'jdbc:h2:mem:test'   # H2 DB 연결 주소 (In-Memory Mode)
    #url: 'jdbc:h2:~/test'    # H2 DB 연결 주소 (Embedded Mode)
    username: username        # H2 DB 접속 ID (사용자 지정)
    password: password        # H2 DB 접속 PW (사용자 지정)

  # H2 Console 설정
  h2:
    console: # H2 DB를 웹에서 관리할 수 있는 기능
      enabled: true           # H2 Console 사용 여부
      path: /h2-console       # H2 Console 접속 주소

  # JPA 설정
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: create        # DB 초기화 전략 (none, create, create-drop, update, validate)
    properties:
      hibernate:
        dialect: org.hibernate.dialect.H2Dialect
        format_sql: true      # 쿼리 로그 포맷 (정렬)
        show_sql: true        # 쿼리 로그 출력

 

H2의 모드 사용목적

In-Memory Mode : 데이터 유지 필요 없음

Embedded Mod : 데이터 유지 필

 

 

JPA  hibernate ddl-auto관련 전략

none 테이블 생성 전략 사용 안함.
create 기존 테이블 삭제 후 재생성
create-drop 기존 테이블 삭제 후 재생성 / 어플리케이션 종료 시점에 테이블 삭제
update 기존 테이블 구조 유지 및 새로운 컬럼(맴버)만 테이블 추가,
기존 컬럼(맴버)는 속성이 변경되어도 테이블에 반영 안됨
validate DDL쿼리를 실행하지 않고 엔티티와 테이블의 정상 매핑만 검증

 

반응형