โ ์คํ๋ง๋ถํธ์์ h2 database๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
pom.xml์ h2 ์์กด์ฑ์ ์ถ๊ฐํ๊ณ ,
application.properties์ ๊ด๋ จ ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๐ h2 database ์คํ์ ์ํ ์ต์ ์ค์
pom.xml
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
application.properties
# h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ (mem) ๋ก ์คํํ๋ ์ค์ . ์ด๋ db์ด๋ฆ์ testdb๋ก ์์ฑ๋๋ค.
spring.datasource.url=jdbc:h2:mem:testdb
# ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด๋, ๋น๋ฐ๋ฒํธ ์ค์ (๋ํดํธ username: sa, ๋ํดํธ password: ์์)
spring.datasource.username=sa
spring.datasource.password=
# h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์น ์ฝ์ ํ์ฑํ
# ์ด๋ ๊ฒ ํ๋ฉด, ๋ธ๋ผ์ฐ์ ์์ localhost:8080/h2-console ๋ก ์ ์ ๊ฐ๋ฅํฉ๋๋ค.
spring.h2.console.enabled=true
๐ ๊ฐ ์ค์ ์ ๋ํด ์ข ๋ ์์ธํ ์์๋ณด๊ธฐ
spring.datasource.url ์์ฑ ( ๊ณต์๋ฌธ์ ์ฐธ๊ณ )
- h2 db ์คํ ๋ชจ๋์๋ embedded๋ชจ๋, in-memory ๋ชจ๋, server ๋ชจ๋๊ฐ ์๋ค.
1๏ธโฃ Embedded ๋ชจ๋
spring.datasource.url=jdbc:h2:{๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฒฝ๋ก์ ์ด๋ฆ}
# ์์: jdbc:h2:~/testdb
- ํ์ผ ๊ธฐ๋ฐ์ด๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๊ฐ ๋ก์ปฌ์ ํ์ผ(testdb.mv.db)๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์,
์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃํ๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋๋ค.
2๏ธโฃ In-Memory ๋ชจ๋
spring.datasource.url=jdbc:h2:mem:{๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ}
# ์์: jdbc:h2:mem:testdb
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ญ์ ๋๋ค.
3๏ธโฃ Server ๋ชจ๋
spring.datasource.url=jdbc:h2:tcp://{๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ url}
# ์์: jdbc:h2:tcp://localhost/~/testdb
- ๋ ๋ฆฝ์ ์ธ h2 ์๋ฒ๋ฅผ ์คํํ๋ค.
โ ๋ธ๋ผ์ฐ์ ์์ h2-console ์ ์ํ๊ธฐ
๋ธ๋ผ์ฐ์ ์์ localhost:8080/h2-console ๋ก ์ ์ํ๊ณ
application.properties์ ์ ์ํ url, username, password๋ฅผ ์ฌ์ฉํ๋ฉด
H2 ์น ์ฝ์์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
- ์ฐธ๊ณ ๋ก, application.properties์ ์๋ ์ค์ ์ ์ถ๊ฐํ์ฌ ์น ์ฝ์ ์ ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ์ค์ ํ ์๋ ์๋ค.
(์ค์ ํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ ๊ฒฝ๋ก๋ ๋ํดํธ๋ก /h2-console์ด ๋จ)
spring.h2.console.path=/asdf
# ์ด๋ ๊ฒ ์ค์ ํ๋ฉด, ๋ธ๋ผ์ฐ์ ์์ http://localhost:8080/asdf ๊ฒฝ๋ก๋ก ์น ์ฝ์์ ์ ์ ๊ฐ๋ฅ