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 ๋“œ๋ผ์ด๋ฒ„ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์•ฝ๊ฐ„์˜ ํŠธ๋ฆญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.