์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ
- ๊ฑฐ๋ญ์ ๊ณฑ
- spring data jpa
- CSS
- ์คํ๋ง
- fibonacci
- ๊ณ์ฐ๊ธฐ๋ง๋ค๊ธฐ
- FilterChain
- CLI๋ช ๋ น์ด
- ๊ทธ๋ฆฌ๋
- ๊นํ๋ธ
- ํ์ดํ๋ก๊ทธ๋๋ฐ
- Spring Security
- testing
- Publishing
- ๋ฐ์ผ๋ฆฌ์ฝ๋ฉ
- ์๋ฐ
- java
- ์๋ฃ๊ตฌ์กฐ
- HTML
- ์ฒซ๊ธ์๋๋ฌธ์
- ๋ฌธ์์ด๋ค์ง๊ธฐ
- ์ปฌ๋ ์ ํ๋ ์์ํฌ
- ์ ๋ค๋ฆญ์ค
- ๋ถํธ์บ ํ
- ๋ฐฑ์๋
- Spring Data JDBC
- ํ๊ณ
- ์๊ณ ๋ฆฌ์ฆ
- ์ธํ ๋ฆฌ์ ์ด
Archives
- Today
- Total
๋์ ๋ชจ์
046 | Spring Data JDBC ๋ณธ๋ฌธ
๐ JDBC(Java DataBase Connectivity)
๐งฉ JDBC
- ์๋ฐ DB ์ฐ๊ฒฐ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ๋ก, ํด๋ผ์ด์ธํธ๊ฐ DB์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํ์ค API์ด๋ค.
- JDBC API๋ฅผ ์ฌ์ฉํด์ ๋ค์ํ ๋ฒค๋์ DB์ ์ฐ๋ํ ์ ์๋ค.
- ๋ฒค๋: MySQL, mariaDB, Oracle, โฆ
๐งฉ JDBC Workflow

- JDBC API๋ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉํ ํ DB์ ์ฐ๊ฒฐํ๋ค.
- JDBC Driver๋ DB์ ํต์ ์ ํ๋ ์ธํฐํ์ด์ค์ด๋ค.
- ๋์ ํ๋ฆ: JDBC ๋๋ผ์ด๋ฒ ๋ก๋ฉ โ Connection ๊ฐ์ฒด ์์ฑ โ Statement ๊ฐ์ฒด ์์ฑ โ ์ฟผ๋ฆฌ ์คํ โ ResultSet ๊ฐ์ฒด์์ ๋ฐ์ดํฐ ์กฐํ โ Close: ResultSet / Statement / Connection
๐งฉ JDBC Connection Pool

๐ Spring Data JDBC
- ๋ฐ์ดํฐ ์ก์ธ์ค ๊ธฐ์ ์ ์ ํ
- SQL ์ค์ฌ
- mybatis, Spring JDBC ๋ฑ์ด ์๋ค.
- ๊ฐ์ฒด(Object) ์ค์ฌ
- JPA, Spring Data JDBC ๋ฑ์ด ์๋ค.
- JPA ๊ฐ์ ๊ฐ์ฒด(Object) ์ค์ฌ์ ๊ธฐ์ ์ ORM(Object-Relational Mapping) ๊ธฐ์ ์ด๋ผ๊ณ ํ๋ค.
- SQL ์ค์ฌ
- ์ธ๋ฉ๋ชจ๋ฆฌ(In-memory) DB๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ์ํ์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ด ์ค์ง๋๋ฉด ์ธ๋ฉ๋ชจ๋ฆฌ DB ์ญ์ ์คํ์ด ์ค์ง๋์ด ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ค.
- Spring์์ ์ง์ํ๋ CrudRepository ์ธํฐํ์ด์ค๋ CRUD์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ CRUD ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ตฌํํ ํ์๊ฐ ์๋ค.
- application.properties ๋๋ application.yml ํ์ผ์ ์ค์ ์ ๋ณด ๋ฑ๋ก์ผ๋ก ๋ค์ํ ์ค์ (DB์ค์ , DB์ด๊ธฐํ ์ค์ ๋ฑ)์ ํ ์ ์๋ค.
- ์ค๋ณต๋๋ ํ๋กํผํฐ์ ์ ๋ ฅ์ ์ค์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ application.yml ๋ฐฉ์์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
- ์ํฐํฐ(Entity) ํด๋์ค์
- ์ด๋ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ด๋ฆ์ ๋งคํ๋๊ณ ,
- ๊ฐ๊ฐ์ ๋ฉค๋ฒ ๋ณ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ปฌ๋ผ์ ๋งคํ๋๋ค.
- ๋ฉค๋ฒ ๋ณ์์ @Id๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ธฐ๋ณธํค(Primary key) ์ปฌ๋ผ๊ณผ ๋งคํ๋๋ค.
๐งฉ Spring Data JDBC ์ ์ฉ ์์
- build.gradle์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ ์์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค.
- application.yml ํ์ผ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ํ๋ค.
- โschema.sqlโ ํ์ผ์ ํ์ํ ํ ์ด๋ธ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ค.
- application.yml ํ์ผ์์ โschema.sqlโ ํ์ผ์ ์ฝ์ด์ ํ ์ด๋ธ์ ์์ฑํ ์ ์๋๋ก ์ด๊ธฐํ ์ค์ ์ ์ถ๊ฐํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๊ณผ ๋งคํํ ์ํฐํฐ(Entity) ํด๋์ค๋ฅผ ์์ฑํ๋ค.
- ์์ฑํ ์ํฐํฐ ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ ์ฒ๋ฆฌํ Repository ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ค.
- ์์ฑ๋ Repository ์ธํฐํ์ด์ค๋ฅผ ์๋น์ค ํด๋์ค์์ ์ฌ์ฉํ ์ ์๋๋ก DIํ๋ค.
- DI๋ Repository์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์๋น์ค ํด๋์ค์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ CRUD๋ฅผ ์ํํ๋ค.
'SEB > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
057 | API Documentation, Swagger, SpringRest (0) | 2022.09.14 |
---|---|
052 | Transaction (0) | 2022.09.05 |
045 | Checked / Unchecked / Customised Exception (0) | 2022.08.25 |
044 | Exception Handling in Spring MVC (0) | 2022.08.24 |
043 | Layer interconnect & Class Mapping (0) | 2022.08.23 |