다음과 같은 과정으로 진행합니다.
Spring Boot Project 시 필요한 확장 :
- Spring Web
- Spring Data JPA
- Lombok
요정도..
1. MySql 연결
2. JPA 연결
# MySQL 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 데이터베이스 소스 URL
spring.datasource.url=jdbc:mysql://localhost:3306/(schema)?serverTimezone=UTC&characterEncoding=UTF-8
# 데이터베이스 사용자 이름 및 비밀번호
spring.datasource.username=your_name
spring.datasource.password=your_password
# JPA 및 Hibernate 설정
# 스키마 자동 생성 및 업데이트 옵션 (create, update, validate, none)
spring.jpa.hibernate.ddl-auto=update
# Hibernate가 생성하는 SQL 쿼리를 콘솔에 출력
spring.jpa.show-sql=true
# 로깅 설정 (선택 사항)
# Hibernate SQL 쿼리 로깅 설정
logging.level.org.hibernate.SQL=DEBUG
# Hibernate SQL 파라미터 바인딩 로깅 설정
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
# Hibernate SQL 쿼리 포맷팅 설정
spring.jpa.properties.hibernate.format_sql=true
# 예시 쿼리:
# 포맷팅 비활성화 시:
# select product0_.id as id1_0_, product0_.description as descript2_0_, product0_.name as name3_0_, product0_.price as price4_0_, product0_.stock as stock5_0_ from product product0_
# 포맷팅 활성화 시:
# select
# product0_.id as id1_0_,
# product0_.description as descript2_0_,
# product0_.name as name3_0_,
# product0_.price as price4_0_,
# product0_.stock as stock5_0_
# from
# product product0_
---> application.properties
build gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.2'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'group'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok:1.18.24'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// Swagger 의존성 추가
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'
}
tasks.named('test') {
useJUnitPlatform()
}
이후, 간단하게 컨트롤러와 service repository entity를 만들어 테스트 해보았다.