๐ŸงJDBC ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ

์ดํžยท2024๋…„ 5์›” 24์ผ
0

๐Ÿค”๊ธฐ์ดˆ ๊ณต๋ถ€

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

์ฃผ์ €๋ฆฌpart...
๋ถ„๋ช… ๋ฐฐ์› ๋˜ ๋‚ด์šฉ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹ค์‹œ ๊ต์žฌ ๋ณต์Šต๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋„˜์–ด๊ฐ„ ๊ฐœ๋…๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์•˜์Œ์„ ํ•˜๋ฃจํ•˜๋ฃจ ๋А๋ผ๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‚จ๋“ค์„ ๋”ฐ๋ผ์„œ ์‹œ์ž‘ํ•œ ๋ธ”๋กœ๊ทธ์˜€์ง€๋งŒ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์“ฐ๋ฉด์„œ ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฐœ๋…์ด๋‚˜ ์ž˜ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋˜ ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์Šค์Šค๋กœ ๊ณต๋ถ€๊ฐ€ ๋„ˆ๋ฌด ์ž˜๋˜์–ด์„œ ์ข‹๋‹ค.
์˜ค๋Š˜๋„ ๊ตฌ๋ฉ๋‚œ ๊ฐœ๋…์„ ์ฑ„์šฐ๋Ÿฌ ์ถœ๋ฐœํ•ด๋ณด์ž~!๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

์˜ค๋Š˜์€ ์ž๋ฐ”์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—†์–ด์„œ๋Š” ์•ˆ๋  JDBC์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.
JDBC๋Š” ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

๐Ÿ“–JDBC๋ž€?

JDBC๋Š” 'Java DataBase Connectivity'์˜ ์•ฝ์ž๋กœ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” API๋‹ค.

๐Ÿ’กJDBC Driver

JDBC Driver๋ž€ ์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ํ†ต์‹ ์„ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.
์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋‹ค์–‘ํ•œ DBMS์— ์—ฐ๊ฒฐํ•  ๋•Œ ๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”์—†์ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด JDBC Driver๋‹ค.

๐Ÿ’กJDBC ์‹คํ–‰ ์ˆœ์„œ

JDBC์˜ ์‹คํ–‰ ์ˆœ์„œ๋Š” ํฌ๊ฒŒ 4๊ฐ€์ง€์ด๋‹ค.
DB์—ฐ๊ฒฐ - sql ์‹คํ–‰ - ๊ฒฐ๊ณผ - ์—ฐ๊ฒฐ ์ข…๋ฃŒ

1.JDBC ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ
Class.forName๋ฅผ ์ด์šฉํ•ด์„œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐ์ฒดํ™” ํ•œ๋‹ค.
Class.forName("oracle.jdbc.driver.OracleDriver");
2. ์—ฐ๊ฒฐ(Connection)
๋“œ๋ผ์ด๋ฒ„ ๋งค๋‹ˆ์ €์—์„œ ์ธ์ฆ ํ›„ ์—ฐ๊ฒฐ(Connection)์ด ๋˜๋ฉด ๊ฐ์ฒด๋ฅผ ์–ป๋Š”๋‹ค.
Connection con = DriverManager.getConnection(url,"username","password");
String url = "jdbc:mariadb://localhost:3306/database1"
3. ์ฟผ๋ฆฌ ์‹คํ–‰(Statement)
Statement st = con.createStatement();
4. ์ฟผ๋ฆฌ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ด(ResultSet)
ResultSet rs = st.executeQuery(query๋ฌธ);
ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ๋Š” ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ rs.next(); ๋กœ ํ•œ์ค„์”ฉ ๊ฐ€์ ธ์˜จ๋‹ค.
5.์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ
์‹คํ–‰์ˆœ์„œ ์—ญ์ˆœ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.

rs.close();
st.close();
con.close();

๐Ÿ‘‹๋งˆ๋ฌด๋ฆฌ๐Ÿ‘‹

JDBC API๋Š” ์ž๋ฐ” ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ JDK์— ํฌํ•จ๋˜์–ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋”ฐ๋ผ์„œ ํ•ด๋‹น DB์˜ JDBC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋ถ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  JDBC๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.
JDBC๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ ํ•œ๋ฒˆ ๋” JDK์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ํ™•์ธ ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
์ดํž๋กœ๊ทธ 'JDK๋ž€?' ํฌ์ŠคํŠธ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

์ฐธ๊ณ 1 https://ittrue.tistory.com/250
์ฐธ๊ณ 2 https://youtu.be/c0s7g7iVtwc?si=LbVldlS-EQcxDOQe

profile
๋ฉ๋ฐœ์ž์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋Š” ๊ธธ

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