Server🧤/JPA

[SpringBoot과 JPA 활용1] H2 데이터베이스 설치와 DB연결, 쿼리파라미터 로그 찍는 방법

yujindonut 2022. 8. 8. 20:51
728x90

개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공

 

윈도우, , 리눅스 실행 버전: https://h2database.com/h2-2019-10-14.zip

 

터미널 환경에서

이 H2를 다운받은 곳으로 이동!

cd Springboot-practice/h2/bin
cat h2.sh // 맥환경에서
chmod 755 h2.sh
./h2.sh


h2.sh를 실행하면 이런페이지가 뜬다.

연결버튼 클릭

jpashop이라는 디비 가 생성이된다!

위에 상단에 연결끊기 후

jdbc:h2:tcp://localhost/~/jpashop 이걸로 URL을 변경해줌

앞으로는 이 URL로 접근이 가능해진다.

 

항상 ./h2.sh를 실행한 상태로 실행해야 디비가 연결이 가능해진다!


DB연결

src/main/resources/application.yml파일 생성

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop;
    // MVCC=TRUE : 여러개의 요청이 들어왔을때, 빠르게 처리할 수 있도록 도와줌
    username: sa
    password:
    driver-class-name: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: create
      #애플리케이션 실행시점에 내가 가진 SQL문을 다 지우고, 다시 생성함
    properties:
      hibernate:
        # show_sql: true
        # System.out.println을 통해 sql문이 출력됨 -> 로그로 출력하게 해야함!
        format_sql: true
logging.level:
  org.hibernate.SQL: debug
  org.hibernate.type: trace
  # 로그로 SQL문 출력하게 함

ddl-auto: create라는 조건을 주었기 때문에, 자동으로 SQL문을 실행해준다.

@Transactional이 Test에 있으면, DB를 Rollback해버린다.

Rollback(false)을 넣어주면, Test케이스여도 commit을 해버린다!


쿼리 파라미터 로그 남기는 방법

build.gradle에 라이브러리 추가 해주면 된다.

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0'

이런식으로 쿼리문이 실행시에 다 출력된다!

 

728x90