๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Database/DB ์ด๋ก 

JDBC

JDBC

JAVA๋กœ DBMS๋ฅผ ์กฐํšŒํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” JDBC์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

JDBC๋ž€?

  • Java Database Connectivity์˜ ์•ฝ์ž
  • ์ž๋ฐ” ์–ธ์–ด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ํ†ต๋กœ
  • ์ž๋ฐ”๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘์†, SQL ๋ฌธ์žฅ์˜ ์‹คํ–‰, ์–ป์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ํ•ธ๋“ค๋ง์„ ์œ„ํ•œ ๊ทœ์•ฝ
  • ์ž๋ฐ” ์•ˆ์—์„œ SQL ๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฐ” API
  • SQL๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์˜ ํ†ตํ•ฉ ์ ‘๊ทผ
  • ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ด๋ฏธ ์ •์˜๋ผ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐด๋”์™€ ์ƒ๊ด€์—†์ด ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ

JDBC์˜ ์„ค์น˜

  • lib์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€
  • Maven ํ™˜๊ฒฝ์—์„œ๋Š” ์˜์กด์„ฑ(dependency)์„ ์ถ”๊ฐ€

JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‹จ๊ณ„

  • java.sql์„ import
  • ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋“œ(Class.forName(~));
  • DriveManager๋กœ Connection ๊ฐ์ฒด๋ฅผ ์–ป์Œ(DriverManager.getConnection(dburl, ID, Password))
  • Connection ๊ฐ์ฒด๋กœ Statement ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ(Connection๊ฐ์ฒด.createStatement());
  • statement๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋กœ ResultSet์„ ์–ป์Œ (statement๊ฐ์ฒด.executeQuery("์ฟผ๋ฆฌ ๋ฌธ์žฅ"))
  • ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ณ  ๋ชจ๋‘ Close๋กœ ํ•ด์ œ(์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ Close)

์ฝ”๋“œ ์˜ˆ์ œ

public static Connection getConnection() throws Exception{
    String url = "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋งž๋Š” dburl์ด ๋“ค์–ด๊ฐ„๋‹ค.";
    String user = "userID";
    String password = "userPassword";
    Connection conn = null;
    Class.forName("๋กœ๋“œํ•  ๋“œ๋ผ์ด๋ฒ„์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅ");
    conn = DriverManager.getConnection(url, user, password);
    return conn;
}
Statement stmt = con.createStatement();

์ฟผ๋ฆฌ๋ฌธ

stmt.execute(“query”);
stmt.executeQuery(“query”);
//SELECT ํ•  ๋•Œ ์‚ฌ์šฉ
stmt.executeUpdate(“query”);
//INSERT, UPDATE, DELETE ํ•  ๋•Œ ์‚ฌ์šฉ

๊ฒฐ๊ณผ ๋ฐ›๊ธฐ ์˜ˆ์ œ

ResultSet rs =  stmt.executeQuery( "select data from db" );
while ( rs.next() )
      System.out.println( rs.getInt( "data") );

close(๋ฐ˜๋Œ€๋กœ)

rs.close();
stmt.close();
con.close();

try ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ซ์•„์ฃผ์ž.