JPA
스프링부트 With JPA - mysql 연동
khds
2021. 12. 6. 09:45
이 글에서는 간단하게 스프링 부트에서 mysql과 연동하는 방식을 봐보겠다.
mysql은
https://dev.mysql.com/downloads/workbench/
에서 다운로드할 수 있다.
자세한 설치방법 및 커넥션 방법은 아래를 참고하길 바란다.
https://shinysblog.tistory.com/20
커넥션을 만들때는 아래와 같은 형식이 주어진다.
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
https://getinthere.tistory.com/17?category=884180