본문 바로가기

개발 지식/Java

[JAVA] JDBC란

반응형

자바 프로그램에서 DB와 관련된 작업을 처리할 수 있도록 도와주는 드라이버

Java DataBase Connectivity의 줄임말로, 자바에서 DB를 사용할 때 JDBC API를 이용하여 작업을 진행한다.

DB 종류 상관없이 하나의 JDBC를 사용하여 DB 작업을 처리한다.

JDBC 드라이버는 각 DBMS에 알맞는 클라이언트를 의미한다. JDBC 프로그래밍 코딩 흐름을 요약하면 다음과 같다.

 

1. JDBC 드라이버 로드

2. DB 연결

  • DriverManager.getConnection을 통해 데이터베이스 Connection을 구한다.

3. DB 작업(SQL Query) 

  • Query 작업을 위해 Statement 객체를 생성한다.
  • Query를 실행한다.
  • Query 실행 결과 사용
  • Statement 종료

4. DB 연결 종료

 

JDBC 드라이버

  • DBMS와 통신을 담당하는 자바 클래스
  • DBMS 별로 알맞은 JDBC 드라이버 필요(jar)
  • 로딩코드 : Class.forName("JDBC 드라이버 이름");
    • MySQL : com.mysql.jdbc.Driver
    • Oracle : oracle.jdbc.driver.OracleDriver

JDBC URL

  • DBMS와의 연결을 위한 식별 값
  • JDBC 드라이버에 따라 형식이 다름
  • 구성 : jdbc:[DBMS]:[DB 식별자]
    • MySQL : jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&param1=value2]
    • Oracle : jdbc:oracle:thin:@HOST:PORT:SID

연결부분 예시 코드

/****************
 - DriverManager를 이용해서 Connection 생성
 - DriverManager.getConnection(String jdbcURL, String user, String password)
****************/

Connection conn = null;
try {
    String jdbcDriver = "jdbc:mysql://localhost:3306/chap11?" + "useUnicode=true&characterEncoding=utf-8";
    String dbUser = "jspexam";
    String dbPass = "jspex";
    conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
    ...
} catch(SQLException e){
    //에러발생
} finally {
    if (conn != null) try { conn.close(); } catch(SQLException e) {}
}

Statement를 이용한 쿼리 실행

/****************
 - Connection.createStatement()로 Statement 생성
 - Statement가 제공하는 메소드로 쿼리 실행
 - SELECT : ResultSet executeQuery(String query)
 - INSERT, UPDATE, DELETE : int executeUpdate(String query)
****************/
Statement stmt = null;
ResultSet rs = null;
try {
    stmt = conn.createStatement();
    int insertedCount = stmt.executeUpdate("insert...");
    rs = stmt.executeQuery("select * from ...");
    ...
} catch(SQLException ex) {
    ...
} finally {
    if (rs != null) try {rs. close(); } catch(SQLException ex) {}
    if (stmt != null) try {stmt.close(); } catch(SQLException ex) {}
}

ResultSet에서 값 조회하기

  • next() 메소드로 데이터 조회 여부 확인
  • getString(), getInt(), getLong(), getFloat(), getDouble(), getTimestamp(), getDate(), getTime() 등등의 주요 메소드

Reference : https://dyjung.tistory.com/50

반응형

'개발 지식 > Java' 카테고리의 다른 글

[JAVA] Logback 사용법  (0) 2020.02.19
[Java] Generic 사용법  (0) 2020.02.10
[JAVA] Servlet(서블릿) 이란  (0) 2020.01.27
Mybatis Mapper 인터페이스  (0) 2020.01.20
[Java] UnsatisfiedLinkError  (0) 2019.12.16