Mysql + JPA 설정

코딩하는 하늘토끼·2023년 6월 21일

스프링부트 공부

목록 보기
9/15

프로젝트 환경

종류환경
IDEIntellij IDEA 2023.1.2 (Ultimate Edition)
언어SpringBoot 3.1.0
타입Gradle - Groovy
JDKcorretto-17
패키지 생성Jar
버전관리Github

의존성

종류이름
WebSpring web
Developer ToolsSpring Processor / Lombok
SQLSpring Data JPA / MySQL Driver
기타OpenAPI:2.0.2

mysql, jpa 설정

코드

build.gradle

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

resources/application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/schema
    username: username
    password: password
    driverClassName: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate:
        format_sql: true
        dialect: org.hibernate.dialect.MySQLDialect
    open-in-view: true

하이버네이트 ddl-auto 옵션

DDL(Data Definition Language, 데이터베이스 스키마를 정의하는 일련의 SQL 명령)

옵션설명
create애플리케이션이 가동되고 SessionFactory가 실행될 때 기존 테이블을 지우고 새로 생성
create-dropcreate와 동일한 기능을 수행하나 애플리케이션을 종료하는 시점에서 테이블을 삭제
updateSessionFactory가 실행될 때 객체를 검사해서 변경된 스키마를 갱신, 기존에 저장된 데이터는 유지
validateupdate처럼 객체를 검사하지만 스키마를 건드리지 않음, 검사 과정에서 데이터베이스의 테이블 정보와 객체의 정보가 다르면 에러 발생
noneddl-auto 기능을 사용하지 않음

참조 : 하이버네이트에 대하여
https://anomie7.tistory.com/m/79

0개의 댓글