[JAVA] JDBC ์ •๋ฆฌ

SungminParkยท2023๋…„ 12์›” 4์ผ

์ž๋ฐ” ์ •๋ฆฌ

๋ชฉ๋ก ๋ณด๊ธฐ
4/10
post-thumbnail

๐Ÿ“š JDBC๋ž€?


JDBC(Java Database Connectivity)๋Š” Java๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ œ ์ €์žฅ ๋ฐ ์—†๋ฐ์ดํŠธ ํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Java์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ž๋ฐ” API์ด๋‹ค.
JDBC๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด JDBC API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž๋ฃŒ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

โœ” JDBC ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค
๋งํฌ ์ด๋ฏธ์ง€

JDBC๋Š” 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ •์˜ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค.

  • java.sql.Connection - ์—ฐ๊ฒฐ
  • java.sql.Statement - SQL์„ ๋‹ด์€ ๋‚ด์šฉ
  • java.sql.ResultSet - SQL์š”์ฒญ ์‘๋‹ต

โœ… JDBC์˜ ๋™์ž‘ ํ๋ฆ„


    1. JDBC ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ
    1. DB ์—ฐ๊ฒฐ
    1. DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ
    1. DB ์—ฐ๊ฒฐ ์ข…๋ฃŒ

๐Ÿ“™ JDBC ๋“œ๋ผ์ด๋ฒ„


  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€์˜ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค
  • Oracle๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์•Œ๋งž์€ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ œ๊ณต
  • JDBC ๋“œ๋ผ์ด๋ฒ„์˜ ๊ตฌํ˜„์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ํŠน์ • ๋ฒคํ„ฐ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“™ JDBC API ์‚ฌ์šฉ ํ๋ฆ„


๋งํฌํ…์ŠคํŠธ

๐Ÿ“™ ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)


JDBC API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Connection๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

โœ” ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DB๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ์กฐํšŒํ•œ๋‹ค.
  • DB ๋“œ๋ผ์ด๋ฒ„๋Š” Db์™€ TCP/IP ์ปค๋„ฅ์…˜์„ ์—ฐ๊ฒฐํ•œ๋‹ค
  • DB๋“œ๋ผ์ด๋ฒ„๋Š” TCP/IP ์ปค๋„ฅ์…˜์ด ์—ฐ๊ฒฐ๋˜๋ฉด ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ, ๊ธฐํƒ€ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ DB์— ์ „๋‹ฌํ•œ๋‹ค.
  • DB๋Š” ์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ธ์ฆ์„ ๊ฑฐ์นœ ํ›„ ๋‚ด๋ถ€์— DB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • DB๋Š” ์ปค๋„ฅ์…˜ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค
  • DB ๋“œ๋ผ์ด๋ฒ„๋Š” ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๋ฉฐ, ๋น„ํšจ์œจ ์ ์ด๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋”ฉ ์‹œ์ ์— Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ์ค€๋น„๋œ Connection๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•˜๋Š” Connection Pool์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

โœ” ์ปค๋„ฅ์…˜ ํ’€ ๋™์ž‘ ๊ตฌ์กฐ

๋งํฌํ…์ŠคํŠธ

profile
๊ฐœ๋ฐœ์ž ์ค€๋น„ ์ค‘ ์ž…๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€