JPA

MySQL과 스프링 부트 연동하기

HipPopoTamUs 2024. 6. 14. 17:20

스프링부트에서 MySQL과 JPA를 연동하는 방법을 살펴보겠다.

 

1. build.gradle 설정

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.mysql:mysql-connector-j'
	...
}

위 두줄이 필요하다.

 

2. application.yml에 DB 정보 추가

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:{포트번호}/{데이터베이스 이름}?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
    username: root
    password: {root password}


  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
        dialect: org.hibernate.dialect.MySQLDialect
        use_sql_comments: true
    show-sql: true


logging:
  level:
    org.hibernate.SQL: debug

 

 

여기서 데이터베이스 스키마 자동생성 옵션을 설정하는 ddl-auto에 대해 알아보자면

create 기존 테이블 삭제 후 다시 생성 DROP + CREATE
create-drop create와 같으나 종료시점에 테이블 drop (drop+table+drop)
update 변경분만 반영 (컬럼 추가는 반영하고 삭제는 반영안함)
validate 엔티티와 테이블이 정상 매핑되었는지만 확인
none 사용하지 않음

 

데이터베이스 스키마 자동 생성 옵션 - 주의점

  • 운영 장비에는 절대 create, create-drop, update 사용하면 안된다!
  • 개발 초기 단계 - create 또는 update
  • 테스트 서버 - update 또는 validate
  • 스테이징과 운영 서버 - validate 또는 none