본문 바로가기
DataBase/mysql

Spring 사용 시 DB를 H2에서 MySQL로 변경하기(JPA사용)

by GGShin 2022. 8. 31.

In-memory DB인 h2를 사용하며 프로젝트를 구현하고 있었고

최종 배포의 시점이 다가오기 전에 미리 MySQL로 변경하게 되었습니다.

추가할 설정이나 변경사항이 많을까 싶었는데 다행히 상당히 쉬웠습니다!

 

사용한 Version 정보

  • Gradle 7.5 
  • JDK 11

1. mysql에 접속해서 사용할 database 만들어놓기

정보를 저장할 DB를 설정해 줄 것이기 때문에 미리 사용할 database를 만들어 놓습니다.

 

2. build.gradle dependency 추가

 

원래 jpa를 사용하고 있었기 때문에 jpa dependency는 들어가 있었고,

mysql dependency만 추가로 넣어주었습니다.

dependencies {

	/* jpa */
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

	/*mysql*/
	implementation 'mysql:mysql-connector-java'
    
}

 

Maven Repository에서는 뒤에 버전 정보도 명시되어 있었는데, 실제 설정 시 버전을 명시하지 않아도 정상적으로 동작이 되었습니다. 따로 붙여 놓지 않으면 최신 버전으로 사용이 되는 건지 궁금하네요.

 

3. application.yml 설정 추가

 

application.yml에도 DB 정보를 추가해줍니다.

spring:
  datasource:
    #MySQL 설정
    driver-class-name: com.mysql.cj.jdbc.Driver
    #DB Source URL
    url: jdbc:mysql://localhost:3306/사용할 DB이름?serverTimezone=UTC&characterEncoding=UTF-8
    username: 유저네임
    password: 비밀번호
  jpa:
    hibernate:
      #JPA의 table 관리(?) 기능 (여러 옵션이 있는데 운영DB에서는 create, create-drop, update은 사용하면 안된다고 합니다.
      #들어온 data들이 날아가면 안되니까요!) 
      ddl-auto: create
      #JPA query 문 콘솔에서 확인하기 위해 true로 설정
    show-sql: true

한글로 작성된 부분은 개인에 따라 다르므로 해당 부분만 변경해서 사용하면 됩니다. 

 

이렇게 두 파일의 설정만 변경해주고 mysql에 접속해서 설정한 DB에 table이 잘 생성되어 있는지 확인해보면 됩니다.☺️

 

🏷 DDL 설정 관련은 아래 블로그에 상세히 나와있습니다!

https://smpark1020.tistory.com/140

 

ddl-auto 옵션 관련 주의할 점!!!!!!!!!

얼마전에 개발바닥 호돌맨님의 재난급 서버 장애내고 개발자 인생 끝날뻔 한 썰을 보게 되었다. 나처럼 JPA를 많이 안써본 사람들이 보면 아주 도움될 영상이다🤣🤣 결론은 spring.jpa.hibernate.ddl-a

smpark1020.tistory.com


 

참고자료

https://smpark1020.tistory.com/140

 

ddl-auto 옵션 관련 주의할 점!!!!!!!!!

얼마전에 개발바닥 호돌맨님의 재난급 서버 장애내고 개발자 인생 끝날뻔 한 썰을 보게 되었다. 나처럼 JPA를 많이 안써본 사람들이 보면 아주 도움될 영상이다🤣🤣 결론은 spring.jpa.hibernate.ddl-a

smpark1020.tistory.com

[세세하게 정리가 잘되어 있는 자료!]

https://dev-coco.tistory.com/85#--%--JPA%--Hibernate%--%EC%--%--%ED%-B%B-%ED%-B%B--Entity-%--%EC%--%-D%EC%--%B-%ED%--%--%EA%B-%B-

 

https://spring.io/guides/gs/accessing-data-mysql/

 

Accessing data with MySQL

this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team

spring.io

 

반응형

'DataBase > mysql' 카테고리의 다른 글

Join 알아보기  (4) 2022.06.13
Primary key & Foreign key 설정하기  (0) 2022.06.12
맥 터미널로 mysql 사용하기  (0) 2022.06.12