โ๏ธ ์๋ฐ์์ DB ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ API
Java์์ DBMS ์ฐ๋์ ํ์ํ ๋ฉ์๋๋ฅผ Connectioin ์ธํฐํ์ด์ค์์ ์ ๊ณตํฉ๋๋ค.
๊ฐ DBMS ๋ฐด๋(vendor)๋ณ ๊ตฌํํ์ฌ (jar ํ์ผ) DBMS์ ์ ์ ๊ฐ๋ฅํ๊ฒ๋ ํฉ๋๋ค.
๋๋ผ์ด๋ฒ ๋ฑ๋ก (๋ฑ๋ก ์ Referenced Libraries -> ojdbc6.jar ํ์ผ์ด ์์ฑ๋์ด์๋์ง ํ์ธํ๊ธฐ!)
DBMS ์ฐ๊ฒฐ
Statement ๊ฐ์ฒด ์์ฑ(์ฟผ๋ฆฌ๋ฌธ ์คํ ์ค๋น, new Statement(); ๊ฐ ์๋๋ผ ์ฐ๊ฒฐ์ ํตํด ๊ฐ์ฒด ์์ฑ)
SQL ์ ์ก(์ฟผ๋ฆฌ๋ฌธ ์คํ)
๊ฒฐ๊ณผ ๋ฐ๊ธฐ(SELECT ๊ตฌ๋ฌธ์ ๊ฒฝ์ฐ ResultSet ๋ก ๋ฐ์์ผ ํจ)
์์ ํด์ ํ๊ธฐ(close())
DBMS์ ํต์ ์ ๋ด๋นํ๋ ์๋ฐ ํด๋์ค
DMBS ๋ณ๋ก ์๋ง์ JDBC ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค.(jar)
๋ก๋ฉ์ฝ๋ : Class.forName("JDBC๋๋ผ์ด๋ฒ ์ด๋ฆ");
MySQL : com.mysql.jdbc.Driver
Oracle : oracle.jdbc.driver.OracleDriver
MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDirver
DBMS์์ ์ฐ๊ฒฐ์ ์ํ ์๋ณ ๊ฐ
JDBC ๋๋ผ์ด๋ฒ์ ๋ฐ๋ผ ํ์์ด ๋ค๋ฆ ๋๋ค.
๊ตฌ์ฑ : jdbc:[DBMS]:[๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ณ์]
MySQL : jdbc:mysql://HOST:[:PORT]/DBNAME[?paran=value¶m1=value2&...]
Oracle : jdbd:oracle:thin:@HOST:PORT:SID
MSSQL : jdbc:sqlserver://HOST[:PORT];databaseName=DB
package com.kh.jdbc.day01.basic;
// sql ์ ์๋ ๋ชจ๋ ๊ฑธ ์ฐ๊ธฐ ์ํด์ * ๋ก ํ๊ธฐ
import java.sql.*;
public class JDBCRun {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "KH";
String password = "KH";
// sql ์์ ์ฟผ๋ฆฌ๋ฌธ ๋ณต์ฌํ ๋ ; ๋นผ๊ณ ๋ณต์ฌํด์ผ ํจ!
String qaery = "SELECT EMP_NAME, SALARY FROM EMPLOYEE";
try {
// 1. ๋๋ผ์ด๋ฒ ๋ฑ๋ก
// Class.forName(""); -> ์ด ์ฝ๋๊ฐ ์์์ผ๋ก์จ ์๋ฃํ์ผ์ ์ธ ์ ์์!
// checked exception -> try-catch๋ฌธ ์ฌ์ฉํด์ผ ํจ.
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2. DBMS ์ฐ๊ฒฐ ์์ฑ
// checked exception -> try-catch๋ฌธ ์ฌ์ฉํด์ผ ํจ.
Connection conn = DriverManager.getConnection(url, user, password);
// 3. ์ฟผ๋ฆฌ๋ฌธ ์คํ์ค๋น(Statement ๊ฐ์ฒด ์์ฑ)
// new ์ฌ์ฉํ์ง ์์, ์ฟผ๋ฆฌ๋ฌธ ์คํ ์ค๋น ๋
Statement stmt = conn.createStatement();
// 4. ์ฟผ๋ฆฌ๋ฌธ ์คํ(SELECT๋ฉด ResultSet), 5. ๊ฒฐ๊ณผ๊ฐ ๋ฐ๊ธฐ(resultset์ ํ
์ด๋ธํํ)
ResultSet rset = stmt.executeQuery(qaery);
// ํ์ฒ๋ฆฌ ํ์ - ๋๋น์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ ์ฌ์ฉํ๊ธฐ ์ํจ.
// ๋ค์ ๋ฐ์ดํฐ๊ฐ ์์๋๊น์ง true, ์์ผ๋ฉด false ๋ก ์ข
๋ฃ
while(rset.next()) {
// ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
์ผ๋ก ๊ฐ์ ธ์์ผ ํจ.
System.out.printf("์ง์๋ช
: %s, ๊ธ์ฌ : %s\n"
, rset.getString("EMP_NAME"), rset.getInt(2));
}
// 6. ์์ํด์
rset.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- ๊ฒฐ๊ณผ๊ฐ
์ ์ฝ์์ต๋๋ค. ์ข์ ์ ๋ณด ๊ฐ์ฌ๋๋ฆฝ๋๋ค.