본문 바로가기
DB/JPA

Spring Boot Gradle JPA MySql 환경설정

by wanna_dev 2024. 7. 22.

다음과 같은 과정으로 진행합니다.

 

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를 만들어 테스트 해보았다.

'DB > JPA' 카테고리의 다른 글

ORM  (0) 2024.07.22
영속성  (0) 2024.07.22