2 ๋ถ„ ์†Œ์š”

๐Ÿ“š DB ( DataBase )


๐Ÿ“š JDBC

JDBC ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?


JDBC - Java Database Connectivity
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.
์‘์šฉํ”„๋กœ๊ทธ๋žจ๊ณผ DBMS๊ฐ„์˜ ํ†ต์‹ ์„ ์ค‘๊ฐ„์—์„œ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

DATABASE JDBC java.sql.Package

DATABASE JDBC ๊ฐœ๋ฐœ๋‹จ๊ณ„

โ‘  JDBC Driver Loading

Class.forName("com.mysql.cj.jdbc.Driver"); 
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋”์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ( MYSQL์—์„œ ์ œ๊ณตํ•˜๋Š” Driver ํด๋ž˜์Šค )
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋”ฉํ•œ๋‹ค.

โ‘ก Connection

String jdbcURL = "jdbc:mysql://127.0.0.1:3306/database?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8";
                                              ________ -> database ์Šคํ‚ค๋งˆ๋ช…
String jdbcid= "root";
String jdbcpw= "1234";

Connection conn = null;
conn = DriverManager.getConnection(jdbcURL, jdbcid, jdbcpw);

โ‘ข Statement/PreparedStatement

PreparedStatement stmt = null;
stmt = conn.prepareStatement();
  • SQL ๊ตฌ๋ฌธ์„ ์ •์˜ํ•˜๊ณ  ๋ณ€๊ฒฝ ๋  ๊ฐ’์€ ์น˜ํ™˜๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด ์ฟผ๋ฆฌ ์ „์†ก ์ „์— ๊ฐ’์„ setting ํ•œ๋‹ค.

โ‘ฃ executeUpdate() or executeQuery()

-> INSERT
String sql = "insert into product (product_id, product_name, product_price, product_desc, register_date) values (?, ?, ?, ?, now())"

Result rst = null;
rst = stmt.executeUpdate(sql);

-> SELECT
String sql = "select * from product"

Result rst = null;
rst = stmt.executeQuery(sql);

  • executeUpdate()๋Š” INSERT, DELETE, UPDATE์˜ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์˜ ํƒ€์ž…์€ int์ด๋‹ค.
    ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฌธ์žฅ์— ์‚ฌ์šฉ
  • executeQuery()๋Š” SELECT์˜ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์˜ ํƒ€์ž…์€ ResultSet์ด๋‹ค.
    ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ

โ‘ค ResultSet ( SELECT์˜ ๊ฒฝ์šฐ )

while(rst.next()) {
				System.out.print(rst.getInt("idx") + " ");      // col ์ด๋ฆ„์ด intํ˜• idx
				System.out.print(rst.getString(2) + " ");       // 2๋ฒˆ์งธ col
				System.out.println(rst.getString("pname"));     // col ์ด๋ฆ„์ด Stringํ˜• pname
			}

โ‘ฅ close ( Connection, Statement, ResultSet )

close ( conn, stmt, rst );

DATABASE JDBC ๋งˆ๋ฌด๋ฆฌ

JDBC์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.
๋นจ๋ฆฌ JAVA์™€ DB๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ํ•ด๋ณด๋‹ˆ๊นŒ ์‹ ๊ธฐํ•˜๋‹ค ใ…Žใ…Ž
๋น„๋ก ์ด ๋ฐฉ๋ฒ•์ด mybatis๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋ค„์ง€๋Š” ๊ฒƒ ์ด์ง€๋งŒ JDBC์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ผญ ํ•„์š”ํ•œ ๊ณผ์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
๊ฐ€์ ธ์™€์„œ ์—ฐ๊ฒฐํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ๊นŒ์ง€.
๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” select ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” insert, update ๋“ฑ๋“ฑ ๋‘ ๋ถ€๋ถ„์˜ ๋ฐฉ๋ฒ•์ด ์•ฝ๊ฐ„์”ฉ ์“ฐ๋Š” ๋ฉ”์„œ๋“œ๋„ ๋‹ค๋ฅด๊ณ  set, get๋„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ž˜ ์จ์•ผํ•œ๋‹ค.
JAVA์™€ ์—ฐ๊ฒฐํ•  ๋•Œ ๋ถ€ํ„ฐ ์ด์ œ DB๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ๊นŒ ์ž˜ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค !!





๐Ÿ‘ ์ฐธ์กฐ
https://shs2810.tistory.com/18
https://devlog-wjdrbs96.tistory.com/139