Java ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
SQL์ ๊ธฐ๋ณธ ์ฌํญ์ ์๊ณ ์์ต๋๋ค. ์ข์ต๋๋ค. ํ์ง๋ง ์ค๋์ ๊ธฐ๋ถ์ด ํจ์ฌ ๋์์ง ๊ฒ์ ๋๋ค. ์ค๋๋ถํฐ Java ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ธฐ ์์ํฉ๋๋ค.
๋ค์ํ DBMS๊ฐ ์์ผ๋ฏ๋ก Java ์ ์์๋ Java ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ํ๋ ๋ฐฉ์์ ํ์คํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ์ด ํ์ค์ JDBC : Java DataBase Connectivity ๋ผ๊ณ ๋ถ๋ ์ต๋๋ค .
JDBC์๋ 3๊ฐ์ง ์ฃผ์ ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค.
- ์ฐ๊ฒฐ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ๋ด๋นํฉ๋๋ค.
- ๋ฌธ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ ๋ด๋นํฉ๋๋ค.
- ResultSet - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋นํฉ๋๋ค.
์ฌ์ค ๊ทธ๊ฒ ๋ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ธํฐํ์ด์ค์ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ง๋ ์์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ์ฐจ ๋ณต์กํ๊ฒ ๋ง๋ค ์์ ์์ ๋ง ์์ต๋๋ค.
JDBC๋ ์๋ธ๋ฆฟ ์์ ๊ณผ ๋ค์ ์ ์ฌํฉ๋๋ค. JDBC์ ์ ์์๋ ์ฌ๋ฌ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ์ผ๋ฉฐ ์ด๋ฅผ ์๋์ค๋ฝ๊ฒ Java DataBase API๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ธํฐํ์ด์ค์ ๊ตฌํ์ ... DBMS ์์ฑ์์๊ฒ ํ ๋น๋์์ต๋๋ค. ๊ทธ๊ฒ์ด ๊ตฌํ๋๋ ๋ฐฉ์-์๋ฌด๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ ์๋ํฉ๋๋ค.
JDBC์๋ ๋ค ๊ฐ์ง ๋ฒ์ ์ด ์์ผ๋ฉฐ ์ต์ ๋ฒ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ ๊ฐ ๊ฐ์ฅ ๋ฉ์ ธ์๊ฐ ์๋๋ผ ๊ฐ์ฅ ๋จ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
JDBC ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ์
Java ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ JDBC ๋๋ผ์ด๋ฒ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์๋ก ํต์ ํฉ๋๋ค. ์ด๊ฒ์ ํน์ DBMS์ ๋ํ JDBC API๋ฅผ ๊ตฌํํ๋ ํด๋์ค ์ธํธ์ ๋๋ค.
DriverManager ๋ผ๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅธ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ ํํฉ๋๋ค . ์ด๋ค์ ์ํธ ์์ฉ์ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ In-Memory-DB, No-SQL-DB ๋๋ Android ์ฑ์ ๋ด์ฅ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. Java ๊ฐ๋ฐ์๋ก์ ์ด๋ฌํ ๋์์ค๋ ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค. ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ์๋ ์ฌ๋ฐ๋ฅธ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ ํ ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์๊ณ์ฒ๋ผ ์๋ํฉ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๊ทธ๋ ์ด๋ป๊ฒํฉ๋๊น?
MySQL ์๋ฒ์ ์ฐ๊ฒฐ
MySQL Workbench๋ฅผ ํตํด ๋ก์ปฌ SQL ์๋ฒ์ ์ฐ๊ฒฐํ๋ ๋ฐ ๋ฌด์์ด ํ์ํ๋์ง ๊ธฐ์ตํ์ญ๋๊น? ๋ด๊ฐ ์์๋ค๋ฉด ๋ค์ ์ธ ๊ฐ์ง๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์๊ธฐ์์ผ๋๋ฆฝ๋๋ค.
- ์ฃผ์ธ
- ๋ก๊ทธ์ธ
- ๋น๋ฐ๋ฒํธ
๋ก๊ทธ์ธ๊ณผ ๋น๋ฐ๋ฒํธ๋ก ๋ชจ๋ ๊ฒ์ด ๋ช ํํ๋ฉฐ ๊ธฐ์ตํ๋ค๋ฉด ํธ์คํธ๋ ์๋ฒ๊ฐ ์์นํ ์ปดํจํฐ์ ์ด๋ฆ์ ๋๋ค. ๋ก์ปฌ ์ปดํจํฐ์ ์๋ ๊ฒฝ์ฐ localhost๋ฅผ ํธ์คํธ ์ด๋ฆ์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค. ๊ตญ์ฐ์ด ์๋๋ฉด?
๊ทธ๋ฐ ๋ค์ ... URL์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. URL์ Universal Resource Locator๋ฅผ ๋ํ๋ ๋๋ค . ์ฌ์ดํธ, ํ๋ฆฐํฐ, SQL ์๋ฒ ๋ฑ ๋คํธ์ํฌ์ ๋ชจ๋ ์์น๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค์ ๋ก URL์ ๋ก์ปฌ SQL ์๋ฒ์ ์ก์ธ์คํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
mysql://localhost:3306/db_scheme
- mysql ์ ์๋ฒ ํ๋กํ ์ฝ์ ๋๋ค.
- localhost - ๋คํธ์ํฌ์ ํธ์คํธ ์ด๋ฆ
- 3306 - ์์ฒญ์ด ์ด๋ฃจ์ด์ง ํฌํธ
- db_scheme - ์คํค๋ง ์ด๋ฆ(๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ)
๋ฉ๋ชจ. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์๋ตํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฒ๊ฐ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ ์๋ก ๋ค๋ฅธ ์ก์ธ์ค ๊ถํ์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ SQL ์๋ฒ์ ๋ก๊ทธ์ธํ๋ ์ฌ์ฉ์๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ์ก์ธ์ค ๊ถํ์ด ์๋ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋ฐ๋์ ์ง์ ํด์ผ ํฉ๋๋ค.
์ด URL์ ๋์๋ ์ค์ ์ค์ธ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ๋ํ ๋งค๊ฐ๋ณ์๋ก ๊ฐ์ฃผ๋๋ ๋ค์ํ ๋งค๊ฐ๋ณ์, ์ธ์ฝ๋ฉ ์ ํ, ์๊ฐ๋๊ฐ ์์ ์ ์์ต๋๋ค.
๋ํ ํ๋กํ ์ฝ์ ๋ณตํฉ์ ์ผ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์์ ๋ชจ๋ ํต์ ์ด SSH ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ์ํธํ๋ ์ฑ๋์ ํตํด ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ URL์ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ํ ์ ์์ต๋๋ค.
ssh:mysql://localhost:3306/db_scheme
ํ๋กํ ์ฝ์ด ๋ฐ๋์ ์ธ๋ถ ํ๋ก๊ทธ๋จ์ผ ํ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด JNDI ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ์๋ฒ๋ก ์์ ํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ํ ์ ์์ต๋๋ค.
jndi:mysql://localhost:3306/db_scheme
JDBC API ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํฉ๋๋ค.
jdbc:mysql://localhost:3306/db_scheme
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ๋ง๋ค๋ ค๊ณ ํ๋ฉด JDBC ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ์๊ฐ SQL-db-URL์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํ๋กํ ์ฝ ์ด๋ฆ์์ JDBC ๋๋ผ์ด๋ฒ ์ด๋ฆ์ ๊ฒฐ์ ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฝ๊ฐ์ ํธ๋ฆญ์ด ์์ต๋๋ค.