본문 바로가기
Java

JDBC 란?

by seeker00 2021. 7. 4.

JDBC (Java Database Connectivity)

자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약

  • 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API
    • JAVA는 표준 인터페이스인 JDBC API를 제공
    • 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 제공
  • SQL과 프로그래밍 언어의 통합 접근 중 한 형태

JDBC 환경 구성

  • JDK 설치
  • JDBC 드라이버 설치
    • Maven에 다음과 같은 의존성을 추가 혹은 MySQL사이트에서 다운로드
      <dependency>   
      <groupId>mysql</groupId>   
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.25</version>
      </dependency>

JDBC를 이용한 프로그래밍 방법

  1. import java.sql.*;
  2. 드라이버를 로드한다.
    • 써드 파티가 제공해주는 드라이버
  3. Connection 객체(써드 파티에서 인터페이스를 구현한 객체)를 생성한다.
    • 써드 파티가 제공해주는 라이브러리 활용
    • DB 접속
  4. Statement 객체(인터페이스를 구현한 객체, 쿼리문을 담은 객체)를 생성 및 질의 수행
  5. SQL문에 결과물이 있다면 ResultSet 객체를 생성한다.
    • 실제 결과는 DBMS에 있고, 자바에서는 결과 셋을 가리키는 레퍼런스를 객체로 받는다.
  6. 모든 객체를 닫는다.
    • DB에 접속할 수 있는 클라이언트의 수가 정해져 있기 때문
// 1. IMPORT
import java.sql.*;

// 2. 드라이버 로드 (메모리에 해당 객체가 로드된다)
Class.forName( "com.mysql.cj.jdbc.Driver" );

// 3. Connection 얻기
String dburl  = "jdbc:mysql://localhost/dbName";
Connection con =  DriverManager.getConnection ( dburl, ID, PWD );

//오라클 소스코드 예제
public static Connection getConnection() throws Exception{
    String url = "jdbc:oracle:thin:@117.16.46.111:1521:xe";
    String user = "userName";
    String password = "password";
    Connection conn = null;
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection(url, user, password);
    return conn;
} 

// 4. Statement 생성 (쿼리문 이용)
Statement stmt = con.createStatement();

// 5. 질의 수행
ResultSet rs = stmt.executeQuery("select no from user" );

/* 참고
stmt.execute(“query”);         //for any SQL
stmt.executeQuery(“query”);    //for SELECT
stmt.executeUpdate(“query”);   //for INSERT, UPDATE, DELETE
*/

// 6. ResultSet으로 결과 받기
ResultSet rs =  stmt.executeQuery( "select no from user" );
while ( rs.next() )
      System.out.println( rs.getInt( "no") );

// 7. Close (생성과는 역순으로 닫는다)
rs.close();
stmt.close();
con.close();

JDBC 클래스의 생성 관계

JDBC 클래스들의 생성 단계

출처) 부스트코스 풀스택 강의 https://www.boostcourse.org/web316/lecture/16734?isDesc=false

'Java' 카테고리의 다른 글

Maven이란?  (0) 2021.07.04
자바 환경변수  (0) 2021.05.08