๐ก ๋งคํ์ ๋ป : ํค(key) ์ญํ ์ ํ๋ ๋ฐ์ดํฐ์ ๊ฐ(value) ์ญํ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ง ์ง์ด(=์ฐ๊ฒฐ ์ง์ด) ์ ์ฅํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ
JPA(Java Persistence API)
- ์๋ฐ ORM ๊ธฐ์ ์ ๋ํ API ํ์ค
- Persistence : ์์์ฑ
- persist() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์ ์ฅ
- Hibernate, OpenJPA
⇒ API(Application Programming Interface)
Spring Data JPA
- save() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์ ์ฅ์ด๋ ์ ๋ฐ์ดํธ๋ฅผ ํจ
JPA ์ฅ์
- ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข
์๋์ง ์์
- ์กฐ๊ธ ์ข ์ ๋จ, ๊ฑฐ์ ๊ตฌ๋ถ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- ์ค๋ผํด, MySQL, MSSQL ๋ฑ๋ฑ์ ์๋ค๊ฐ๋ค ํ๋ฉด์ ์ฌ์ฉ ๊ฐ๋ฅ
- ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ค๊ณ ๊ฐ๋ฅ
- ์ง๊ด์ ์ด๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ค
- ์ ์ง๋ณด์ ์ ๋ฆฌ ๋ฐ ์์ฐ์ฑ ํฅ์
- ์ปฌ๋ผ ์์ ์ ํด๋์ค ํ๋ ์์ ์ผ๋ก ํด๊ฒฐ
JPA ๋จ์
- ๋ณต์กํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ
- Native SQL
- JPQL ์ง์ (์ฟผ๋ฆฌ๋ ๋น์ท)
- ์ฑ๋ฅ ์ ํ ์ํ
- ์๋ ์์ฑ์ ์ํ ์๋ํ์ง ์๋ ์ฟผ๋ฆฌ ๋ฐ์
- ํ์ต ์๊ฐ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค → MyBatis → JPA ๊ถ์ฅ
JPA ๋์ ๋ฐฉ์
์ํฐํฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋์ํ๋ ํด๋์ค
- @Entity ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ ๊ด๋ฆฌ
์ํฐํฐ ๋งค๋์ ํฉํ ๋ฆฌ
- ์ํฐํฐ ๋งค๋์ ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ฃผ์ฒด
- ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ ํ ๊ฐ๋ง ๋ง๋ค์ด์ง๋ฉฐ
- ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ํฐํฐ ๋งค๋์ ํฉํ ๋ฆฌ๋ก๋ถํฐ ์ํฐํฐ ๋งค๋์ ์์ฑ
์ํฐํฐ ๋งค๋์
- ์์์ฑ ์ปจํ ์คํธ์ ์ ๊ทผํ์ฌ ์ํฐํฐ์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ๊ณต
Database ์ค์
- spring.datasource.driver-class-name=๊ฒฝ๋ก(com.mysql.cj.jdbc.Driver)
- spring.datasource.url=๋ฐ๋ฒ ๊ฒฝ๋ก(jdbc:mysql://localhost:3306/shop2?serverTimezone-UTC)
- spring.datasource.username=์ ์ ์ด๋ฆ(root)
- spring.datasource.password=๋น๋ฐ๋ฒํธ(1234)
JPA ์ค์
- spring.jpa.properties.hibernate.show_sql=true : ์์ฑํ ์ฟผ๋ฆฌ๋ฅผ ์ฝ์์ ๋ณด์ฌ์ค์ง์ ์ฌ๋ถ
- spring.jpa.properties.hibernate.format_sql=true : ์ฟผ๋ฆฌ ๋ชจ์์ ๋ง์ถฐ์ ๋ณด์ฌ์ค์ง์ ์ฌ๋ถ(ex)๋ค์ฌ์ฐ๊ธฐ)
- spring.jpa.hibernate.ddl-auto=create or update: update : ๋ณ๊ฒฝ๋ ์คํค๋ง ์ ์ฉ
- : validate : ์ํฐํฐ์ ํ ์ด๋ธ ์ ์ ๋งคํ ํ์ธ
- : create : ๊ธฐ์กด ํ ์ด๋ธ ์ญ์ ํ ํ ์ด๋ธ ์์ฑ
- spring.jpa.database-platform=๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด ์ค์ (org.hibernate.dialect.์ธ์ด์ด๋ฆ)
๐ก ํผ์ ๊ณต๋ถํ ๋ ์ฐพ์ ๋์ ๋ณด์ถฉ ์ค๋ช
- DDL ( ๋ฐ์ดํฐ ์ ์์ด )
- ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ , ์ญ์ ๋ฑ ๋ฐ์ดํฐ์ ์ ์ฒด ๊ณจ๊ฒฉ์ ๊ฒฐ์
- ๋ฐ๋ฒ , ํ ์ด๋ธ ์์ฑ ๋ฐ ๋ณ๊ฒฝ, ์ ๊ฑฐ
- CREATE, ALTER, DROP, TRUNCATE
- DML ( ๋ฐ์ดํฐ ์กฐ์์ด )
- ํ ์ด๋ธ์ ์๋ ํ๊ณผ ์ด์ ์กฐ์ํ๋ ์ธ์ด
- ๋ฐ์ดํฐ ์ ๋ ฅ, ๋ณ๊ฒฝ, ์์ ๋ฑ
- SELECT, INSERT, UPDATE, DELETE
- DCL ( ๋ฐ์ดํฐ ์ ์ด์ด )
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ฑฐ๋ ๊ฐ์ฒด์ ๊ถํ์ ์ฃผ๋ ๋ฑ์ ์ญํ
- ๋ฐ๋ฒ ์ ์๊ถํ
- GRANT, REVOKE, COMMIT, ROLLBACK
'Web & Android > Spring Data JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Data JPA] Querydsl (0) | 2023.10.15 |
---|---|
[Spring Data JPA] @Query (0) | 2023.10.14 |
[Spring Data JPA] QueryMethod (0) | 2023.10.14 |
[Spring Data JPA] ์์์ฑ ์ปจํ ์คํธ (1) | 2023.10.14 |
[Spring Data JPA] ORM & SQL Mapper (0) | 2023.10.14 |