SpringBoot(gradle) + MySQL๐ฌ + JPA ์ฐ๋ํ๊ธฐ
- MAC์์ MySQL WORKBENCH ์ฌ์ฉํ ์คํ๋ง๋ถํธ + MySQL + JPA ์ฐ๋ํ๊ธฐ
- ํญ์ ์ฒซ๊ฑธ์์ ์ธํ ๋ถํฐ๋ค๐
- MySQL ์๋ฒ๋ฅผ ๊ตฌ๋์์ผ ์ค๋ค.(terminal)
- cd /usr/local/mysql/bin/
- ./mysql -uroot -p
- password ์ ๋ ฅ
-
WORKBENCH ๐ฌ์์ create a new schemas ๋ก ์๋ก์ด ์คํค๋ง(DB)๋ฅผ ๋ง๋ค์ด ์ค๋ค.
- build.gradle์ ์๋ dependency๋ฅผ ์ถ๊ฐํด์ค๋ค.
dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'mysql:mysql-connector-java' }
-
์๋์ ์ค์ ์ผ๋ก properties ๋ yml ํ์ผ์ ๋ด์ฉ์ ์ธํ ํด์ค๋ค.
# MySQL ์ค์ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # DB Source URL spring.datasource.url=jdbc:mysql://<IP>:<PORT>/<DB NAME>?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul spring.datasource.url=jdbc:mysql://localhost:3306/testdb?characterEncoding=UTF-8&serverTimezone=UTC # DB usernamer spring.datasource.username=<MySQL USERNAME> # DB password spring.datasource.password=<MySQL PASSWORD> logging.level.com.example = debug spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.show_sql = true #spring.jpa.hibernate.ddl-auto=create spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.dll-auto : create, create-drop, update, validate, none ์ต์ ์ค์ ๊ฐ๋ฅ
- create : JPA๊ฐ DB์ ์ํธ์์ฉํ ๋ ๊ธฐ์กด์ ์๋ ์คํค๋ง(ํ
์ด๋ธ)์ ์ญ์ ํ๊ณ ์๋ก ๋ง๋๋ ๊ฒ์ ๋ปํจ
- ํ ์คํธ ์ฉ๋๋ก ์์ฃผ ์ฌ์ฉ
-
create-drop : JPA ์ข ๋ฃ ์์ ์ ๊ธฐ์กด์ ์์๋ ํ ์ด๋ธ์ ์ญ์
- update : JPA์ ์ํด ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ฐ์
- ์ค์ ์๋น์ค์ ๋น์ทํ ํ๊ฒฝ์ด๋ผ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐ
-
validate : ์ํฐํฐ์ ํ ์ด๋ธ์ด ์ ์ ๋งคํ๋์ด ์๋์ง๋ง ๊ฒ์ฆ
- none : ์ด๊ธฐํ ๋์์ ์ฌ์ฉํ์ง ์๋๋ค
spring.jpa.show-sql: JPA๊ฐ ์์ฑํ SQL๋ฌธ์ ๋ณด์ฌ์ค ์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ์๋ ค์ฃผ๋ ํ๋กํผํฐ์ด๋ค.
spring.jpa.generate-dll:
spring.jpa.hibernate.dll-auto ์ต์ ์ ์ฌ์ฉํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ํ๋กํผํฐ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก false๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ JPA์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ ์ด๊ธฐํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด true๋ก ์ธํ ํด์ผ ํ๋ค.
Reference ๐
Leave a comment