Chapter 1. JDBC

김승현·2021년 10월 19일
0

JDBC (Java DataBase Connectivity)


  • 자바 언어를 통하여 DataBase에 접근할 수 있게 해주는 Programming API
  • Java에서 DBMS 연동에 필요한 Connection 인터페이스를 제공
  • 각 DBMS 벤더(vendor)별 구현하여 (jar 파일) DBMS에 접속 가능하게 함
  • java.sql 패키지에서 관리



필요한 라이브러리


  • JDBC를 통하여 DB(오라클)에 연결려면 OJDBC 라이브러리가 필요
    • OJDBC 라이브러리: 오라클에서 제공하는 오라클DB와 자바가 연결되기 위한 드라이버를 제공하는 라이브러리
  • 오라클 버전별 라이브러리 이름
    • oracle 7 : classes111.zip / oracle 8 : classes12.zip
    • oracle 9i : ojdbc14.jar / oracle 10g : ojdbc14.jar
    • oracle 11g : ojdbc6.jar



JDBC 코딩 절차


  1. Driver 등록

    • 이클립스에서 DBMS와 연도하기 위해서는 Driver를 등록해야함(DriverManager)
    • ojdbc 안에 있는 드라이브를 등록하고 사용
  2. DBMS와 연결

    • Connection 객체 이용
  3. Statement 객체 생성- 연동된 DBMS에 쿼리를 전송하는 객체(2가지 방식)

    • Statemenet 방식
    • PreparedStatement 방식
  4. SQL 전송

    • 작동시킬 SQL을 DBMS로 전송
  5. 결과 받기

    • 처리결과 DBMS로 부터 받기
  6. 닫기

    • close 처리



JDBC 관련 Class 및 Interface


DriverManager

  • 데이터 원본에 JDBC 드라이버를 통하여 Connection을 만드는 역할을 함
  • Class.forName() 메소드를 통해 생성되며, 반드시 예외처리를 해야 함
  • 직접 객체 생성이 불가능하고, getConnection() 메소드를 사용하여 객체를 생성할 수 있음

Connection

  • 특정 데이터 원본과 연결된 커넥션을 나타냄
  • Statement 객체를 생성할 때에도 Connection 객체를 이용하여 만듦
    (createStatement() 메소드를 이용하여 호출)
  • 추후 JDBC에서 DBMS와의 연동 스트림을 가지고 있음

Statement

  • Connection 객체에 의해 프로그램에 리턴되는 객체
  • Connection Class의 createStatement() 메소드를 호출하여 얻어지며, 생성된 Statement 객체로 질의문장을 String 객체에 담아 인자로 전달하여
  • excuteQuery() 메소드를 이용하여 DBMS에서 SQL을 실행

PreparedStatement

  • Connection 객체의 preparedStatement() 메소드를 사용하여 객체를 생성 함
  • SQL 문장이 미리 컴파일 되고, 실행시간 동안 인수 값을 위한 공간을 확보 할 수 있다는 점에서 Statement 방식과는 다름
  • 각 각의 인수에 대해 위치 홀더를 사용하여 SQL 문장을 정의할 수 있게 해줌

ResultSet

  • SELECT 문을 사용한 질의 성공시 ResultSet을 반환

  • ResultSEt은 SQL 질의에 의해 출력된 정보 테이블을 담고 있으며, '커서(cursor)' 라는 것을 가지고 특정 행에 대한 참조를 제어할 수 있음



MVC 패턴


  • MVC는 애플리케이션이 동작하기 위한 비즈니스 로직을 3개의 구조로 나누어 개발한 패턴
  • Model, View, Controller의 약자
  • 유연성과 확장성을 고려한 개발을 하기 위해 사용

Model

  • 데이터를 처리하기 위한 로직을 구성
  • DBMS와 상호작용 하거나 DATA를 가공처리 하는 역할

View

  • 사용자로부터 입력 받고, 화면을 보여주기(UI) 위한 역할

Controller

  • 사용자가 요청한 것을 어떻게 처리할지를 결정하는 역할
  • View 와 Model 사이에서 동작
  • Controller은 사용자가 요청한 것을 어떤 Model과 연결할지를 결정



JDBC를 진행하기 위한 셋팅 (이클립스 - 워크스페이스편)


  • 한글을 표현하는 문자 인코딩 방식은 다양하게 존재 (MS949, UTF-8, UTF-16 방식 등등)
  • 이때, 한글 표현 방식은 DB 방식에 맞추어 주는 것을 권장 (오라클은 UTF-8 방식)
  1. 이클립스 perspective: Java 환경

  2. 기본 문자셋 인코딩 설정 경로

    • General > Editors > Text Editors > Spelling > Encoding
    • General > Workspace > Text file encoding
    • JSON > JSN Files > Encoding
    • Web > CSS Files > Encoding
    • Web > HTML Files > Encoding
    • Web > JSP Files > Encoding
  3. ojdbc 라이브러리 추가

    • Project 우클릭-> Build Path -> Configure Build Path -> Libraries
      -> Add External JARs -> 파일 경로 입력하여 등록(C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib)
profile
개발자로 매일 한 걸음

0개의 댓글