SQL,Database

h2 데이터베이스 스프링에서 테스트코드용으로 인메모리형식으로 사용할때

seungmin576 2025. 3. 7. 17:42
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true

application.properties 파일을 테스트쪽에도 resources 패키지를 만들어 이런식으로 작성해 넣어준다.

 

spring.datasource.url=jdbc:h2:mem:testdb;

h2 데이터베이스의 URL을 설정한다.

DB_CLOSE_DELAY=-1

옵션은 연결이 닫힌 후에도 데이터베이스가 유지되도록 해준다.

DB_CLOSE_DELAY 설정은 데이터베이스가 언제 닫힐지를 제어한다.

-1 값은 어플리케이션이 실행되는 동안 데이터베이스가 계속 열려있도록 한다.

DATABASE_TO_UPPER=false

는 데이터베이스 내에서 테이블 및 컬럼 이름이 대문자로 변환되지 않도록 해준다.

 

DB_CLOSE_ON_EXIT=FALSE

위 코드에서는 미적용했다.

어플리케이션이 종료될 때 데이터베이스의 자동 종료를 방지한다.

 

 

 

  • spring.datasource.driverClassName=org.h2.Driver
    • 설명: 데이터베이스 연결을 위한 드라이버 클래스 이름을 설정합니다. 여기서는 H2 데이터베이스를 사용하므로 org.h2.Driver를 지정합니다.
  • spring.datasource.username=sa
    • 설명: 데이터베이스의 사용자 이름을 설정합니다. H2 데이터베이스의 기본 사용자 이름은 sa입니다.
  • spring.datasource.password=
    • 설명: 데이터베이스의 비밀번호를 설정합니다. H2 데이터베이스의 기본 비밀번호는 빈 문자열입니다.
  • spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
    • 설명: JPA (Java Persistence API)에서 사용할 데이터베이스 방언(dialect)을 설정합니다. H2 데이터베이스를 사용하므로 org.hibernate.dialect.H2Dialect를 지정합니다.
  • spring.jpa.hibernate.ddl-auto=create
    • 설명: 애플리케이션 시작 시 데이터베이스 스키마를 자동으로 생성하도록 설정합니다. create 옵션은 기존 스키마를 삭제하고 새로 생성합니다. (주의: 실제 운영 환경에서는 이 설정을 주의해서 사용해야 합니다)
  • spring.jpa.show-sql=true
    • 설명: Hibernate가 실행하는 SQL 쿼리를 콘솔에 출력하도록 설정합니다. 이는 디버깅과 개발에 유용합니다.