JPA

스프링부트 With JPA - mysql 연동

khds 2021. 12. 6. 09:45

이 글에서는 간단하게 스프링 부트에서 mysql과 연동하는 방식을 봐보겠다. 

 

mysql은

  https://dev.mysql.com/downloads/workbench/

 

MySQL :: Download MySQL Workbench

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M

dev.mysql.com

에서 다운로드할 수 있다.

 

자세한 설치방법 및 커넥션 방법은 아래를 참고하길 바란다.

https://shinysblog.tistory.com/20

 

MySQL(workbench) 다운로드 및 설치 방법

MySQL 다운로드와 workbench를 설치하는 방법을 알려드리겠습니다. dev.mysql.com/downloads/windows/installer/8.0.html MySQL :: Download MySQL Installer Select Operating System: Select Operating System…..

shinysblog.tistory.com

 

커넥션을 만들때는 아래와 같은 형식이 주어진다.

 

 

Hostname과 Port는 특별한 경우가 아니면 위와 같이 주어진다. 

커넥션 이름을 설정하고 Test Connection을 클릭하여 설치할 때 생성한 비밀번호로 연결을 하면

 

 

와 같이 나오며 MySQL에 접속할 수 있게 된다.

 

접속하면 

-- 유저이름@아이피주소
create user 'test'@'%' identified by 'test2';
-- ON DB이름.테이블명
-- TO 유저이름@아이피주소
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
CREATE DATABASE testDB CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
use testDB;

 

와 같이 입력하여 사용자를 추가하고 권한을 주고 새로운 데이터베이스를 생성할 수 있다.

 

이제 스프링 부트 프로젝트로 가서 아래와 같이 의존성을 추가해준다.(gradle로 진행함)

 

dependencies {
    implementation 'mysql:mysql-connector-java'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}

 

그리고 yml(혹은 properties)에 아래와 같이 추가해준다.

 

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testDB?serverTimezone=Asia/Seoul
    username: test
    password: test2
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
    show-sql: true

 

ddl-auto 부분은

  • create  :  기존 테이블을 삭제하고 새로 생성 [ DROP + CREATE ]
  • create-drop  :  CREATE 속성에 추가로 애플리케이션을 종료할 때 생성한 DDL을 제거 [ DROP + CREATE + DROP ]
  • update  :  DB 테이블과 엔티티 매핑 정보를 비교해서 변경 사항만 수정 [ 테이블이 없을 경우 CREATE ] 
  • validate  :  DB 테이블과 엔티티 매핑 정보를 비교해서 차이가 있으면 경고를 남기고 애플리케이션을 실행하지 않음
  • none  :  자동 생성 기능을 사용하지 않음

로 설정할 수 있다.

 

url은 일반적으로 비슷한 형식이고 중간에 데이터베이스 이름(testDB)만 수정하면 된다.

username과 password는 루트 계정으로 해도 되지만 위에서 생성한 유저를 가지고 하는 것이 좋다.

 

이후 실행을 하면 잘 실행될 것이다.

 

 

참고

https://dev-coco.tistory.com/85

 

[Spring Boot] MySQL & JPA 연동 및 테스트 (Gradle 프로젝트)

SpringBoot에서 MySQL 그리고 Spring Data JPA를 연동하는 방법에 대해 알아보도록 하겠습니다. 1. 프로젝트에 의존성 추가하기 build.gradle에 의존성을 아래와 같이 추가해줍니다. dependencies { implementatio..

dev-coco.tistory.com

https://getinthere.tistory.com/17?category=884180 

 

스프링부트 with JPA 블로그 3강 - MySQL 한글 설정 및 연결

1. MySQL 한글 설정 my.ini 파일 MySQL 재시작 [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' init_conn..

getinthere.tistory.com