JDBC

Jimin·2022년 9월 7일
0

JAVA

목록 보기
18/23

JDBC

java DataBase Connectivity
자바 언어로 다양한 종류의 관계형 데이터베이스에 접속하고 SQL문을 수행하여 처리하고자 할 때 사용되는 표준 SQL 인터페이스 API (자바에서 DB 프로그래밍을 하기 위해 사용되는 API)
⇒ 즉, 자바에서 데이터베이스를 사용하기 위한 절차에 대한 규약이다.
⇒ 데이터베이스 종류에 상관 없다.

DBMS에 따라 DB를 다루는 방식이 다르다면, 사용자는 각 DBMS의 방식을 모두 알아야하기 때문에 지식이 너무 많이 필요하게 된다. 그래서 JDBC를 통해 추상화된 인터페이스를 제공하기만 하고, 데이터베이스의 종류에 상관없이 각 JDBC Driver를 통해 특정 DBMS를 사용할 수 있다.
DB에 접근하기 위한 인터페이스는 JDBC의 API를 사용하면 된다.

JDBC API 사용 어플리케이션의 기본 구성

JDBC 프로그래밍 코딩 흐름

  1. JDBC 드라이버 로드
  2. DB 연결
  3. DB에 데이터를 읽거나 쓰기 (SQL문)
  4. DB 연결 종료

JDBC Driver

실제 DB 관련 기능이 동작하려면 JDBC가 제공하는 인터페이스만으로는 작업할 수 없다.
그렇기 때문에 java.sql의 인터페이스들을 상속하여 메소드의 몸체를 구현한 클래스파일들이 필요하다.
이 파일들을 JDBC 드라이버라고 한다.
JDBC 프로그램을 위해서는 우선 JDBC 드라이버를 준비해야한다. JDBC 드라이버는 DB가 설치된 폴더 또는 사용하는 DB를 제공하는 벤더사의 홈페이지에서 다운받을 수 있다.

  • 각 DBMS에 알맞는 클라이언트
  • DBMS와 통신을 담당하는 자바 클래스
  • DBMS 별로 알맞은 JDBC Driver 필요(jar 파일)
  • 로딩 코드: Class.forName("JDBC드라이버 이름");
    • MySQL: com.mysql.jdbc.Driver
    • 오라클: oracle.jdb.driver.OracleDriver
    • MSSQL: com.microsoft.sqlserver.jdbc.SQLServerDriver

JDBC URL

  • DBMS와의 연결을 위한 식별 값
  • JDBC Driver에 따라 형식이 다름
  • 구성: jdbc:[DBMS]:[데이터베이스식별자]
    • MySQL: jdbc:mysql://HOST[:PORT]/DNAME[?param=value&param1=value2&..]
    • 오라클: jdbc:oracle:thin:@HOST:PORT:SID
    • MSSQL: jdbc:sqlserver://HOST[:PORT];databaseName=DB

DB 연결 생성

일반적인 코드 구성

try (Connection con = DriverManager.getConnection(
        "jdbc:mariadb://localhost:3306/studydb?user=study&password=1111");
        PreparedStatement stmt = con.prepareStatement(
            "delete from x_board where board_id=?")) {

      stmt.setString(1, no);
      int count = stmt.executeUpdate();

      if (count == 0) {
        System.out.println("해당 번호의 게시물이 존재하지 않습니다.");
      } else {
        System.out.println("삭제하였습니다.");
      }
    }
  • DriverManager를 이용해서 Connection 생성
    DriverManager.getConnection(String jdbcURL, Strgin user, String password)
  • Connection.prepareStatement()로 Statement생성
  • Statement가 제공하는 메서드로 쿼리 실행
    • SELECT: ResultSet executeQuery(String query)
    • INSERT, UPDATE, DELETE: int executeUpdate(String query)

ResultSet에서 값 조회


next() 메서드로 데이터 조회 여부 확인

데이터 조회를 위한 주요 메서드

  • getString()
  • getInt(), getLong(), getFloat(), getDouble()
  • getTimestamp(), getData(), getTime()

출처

https://dyjung.tistory.com/50
https://codingwell.tistory.com/23

profile
https://github.com/Dingadung

0개의 댓글