프로젝트 환경
| 종류 | 환경 |
|---|
| IDE | Intellij IDEA 2023.1.2 (Ultimate Edition) |
| 언어 | SpringBoot 3.1.0 |
| 타입 | Gradle - Groovy |
| JDK | corretto-17 |
| 패키지 생성 | Jar |
| 버전관리 | Github |
의존성
| 종류 | 이름 |
|---|
| Web | Spring web |
| Developer Tools | Spring Processor / Lombok |
| SQL | Spring 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-drop | create와 동일한 기능을 수행하나 애플리케이션을 종료하는 시점에서 테이블을 삭제 |
| update | SessionFactory가 실행될 때 객체를 검사해서 변경된 스키마를 갱신, 기존에 저장된 데이터는 유지 |
| validate | update처럼 객체를 검사하지만 스키마를 건드리지 않음, 검사 과정에서 데이터베이스의 테이블 정보와 객체의 정보가 다르면 에러 발생 |
| none | ddl-auto 기능을 사용하지 않음 |
참조 : 하이버네이트에 대하여
https://anomie7.tistory.com/m/79