[피노키오] SpringBoot에서 MySQL 연동하기

조유정·2024년 1월 30일
0

피노키오

목록 보기
1/3

1. 의존성 추가

build.gradle

// mysql
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'
  • org.springframework.boot:spring-boot-starter-data-jpa : SpringBoot에서 JPA를 사용하려는 경우 필요한 의존성이다. 이 패키지에는 Spring Data JPA와 Hibernate를 포함하며 데이터베이스와의 상호작용을 지원한다.
  • com.mysql:mysql-connector-j : : MySQL 데이터베이스와의 연결을 위해 필요한 MySQL JDBC 드라이버를 추가한다. MySQL 데이터베이스와 상호작용하기 위해서 해당 데이터베이스에 연결할 때 사용되는 드라이버가 필요하며, JDBC 연결을 지원한다.

2. application.yml 파일

# JPA MySQL
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: ${SPRING_DATASOURCE_URL}
    username: root
    password: ${SPRING_DATASOURCE_PASSWORD}
  jpa:
    database: mysql
    database-platform: org.hibernate.dialect.MySQL8Dialect
    show-sql: true
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true

url, password는 공개되어서는 안되는 데이터이다.

따라서, yml 파일에는 MySQL 사용을 위한 JPA 설정만 해두었고
application.properties 파일에는 url, password 정보를 따로 작성해주었다.

현재 진행하고 있는 피노키오 프로젝트에서는 yml 없이 properties 파일만을 사용하고 있었는데,이번 기회에 yml 파일을 추가로 생성하였다.
yml 파일은 설정을 위한 용도, properties 파일은 민감한 정보를 저장하는 용도로 분리하여 사용 중이다.
properties 파일은 .gitignore에 추가하여 github 저장소에 노출되지 않도록 관리한다.

3. application.properties 파일

SPRING_DATASOURCE_URL = URL_주소
SPRING_DATASOURCE_PASSWORD = DB_비번
  • 로컬에서 데이터베이스를 사용하는 경우
    • jdbc:mysql://localhost:3306/[DB이름]

(추가 설명) MySQL 사용을 위한 JPA 설정

jpa:
		# mysql 사용하겠다.
    database: mysql

		# MySQL 8 dialect를 사용하도록 지정
		database-platform: org.hibernate.dialect.MySQL8Dialect

		# SQL 쿼리를 콘솔에 출력
    show-sql: true

		# 서버를 실행할 때마다 DB 초기화
		# none : DB구조는 변경되지 않음
		# update : 변경된 스키마만 적용
		# create : 시작될 때만 drop하고 다시 생성
		# create-drop : 시작과 종료에서 모두 drop
    hibernate:
      ddl-auto: update

		# SQL 쿼리를 읽기 쉽게 포맷
    properties:
      hibernate:
        format_sql: true

참고

https://www.baeldung.com/hibernate-lazy-loading-workaround

https://velog.io/@koominji/SpringBoot-MySQL-연동하기

https://velog.io/@dev_albatross53/mysql오류-typeMyISAM

profile
나는 아직 멍청하다

0개의 댓글