교육과정 기록/💻back-end

[7.7] JDBC (Java DataBase Connectivity)

춘식이왔엉 2022. 7. 8. 00:42

JDBC

- 자바언어를 이용한 데이터베이스와의 연결

- 관계형 데이터베이스라면, 그 어떤 것이라도 연결 가능

 

* 구성요소

1. JDBC API

    - 규격만 정의 (거의 인터페이스)

    - 자바표준 패키지로 이미 포함(java.sql)

2. JDBC Driver

    - JDBC API의 구현체

 

* JDBC driver를 이용한 데이터베이스 프로그래밍할 때,
  핵심이 되는 클래스/인터페이스

  (0) java.sql.DriverManager (Class) - 실제 연결 커넥션을 만들어줌
  (1) java.sql.Connection (interface)
  (2) java.sql.Statement  (interface) ---> Dynamic SQL (--> 성능을 떨어트릴 수 있음)
  (3) java.sql.PreparedStatement (interface) --> Prepared SQL
  (4) java.sql.ResultSet   (interface)
  (5) java.sql.SQLException (class) - Checked Exception

   ---> 순서대로 생성해야함

  * 위에서, (1) ~ (4) 까지는 자원객체(Resources) 임 =>  때문에, 다 사용하고 나면, 반드시 자원해제(close) 해줘야됨!
    이때 , 자원객체를 닫는 순서가 정해져 있고, 이를 반드시 지켜야 된다. (4) > (2) 또는 (3) > (1)

 

* JDBC API를 이용하여 Target DB에 연결하려면, 아래의 4개의 정보가 필수적으로 필요

 1.  jdbc URL   --> JDBC를 위해 만든 URL이기 때문에, 아래와 같은 표기법이 적용 

jdbc:<vendor명>:thin:@IP주소:Port번호/접속DB명 (EZCONNECT)

jdbc:<vendor명>:thin:@네트워크별칭 (TNSNAMES)

--> jdbc:oracle:thin:@네트워크별칭    ( cloud)

(tnsnames.ora 파일에 들어있는 경로를 지정해줘야함 by 환경변수 TNS_ADMIN)

jdbc:<vendor명>:thin:@네트워크별칭?TNS_ADMIN= <전자지갑파일이 들어있는 폴더 경로 지정>

 

네트워크별칭 정보 위치

        ** Oracle DBMS에 접속방식 2가지 (EZCONNECT, TNSNAMES)

            - EZCONNECT : 1) 접속IP주소  2) 접속Port번호  3) 접속DB이름

             - TNSNAMES : EZCONNECT의 3가지 정보를 가지고 있는 별도의 이름(=네트워크 별칭, TNS Alias)를 이용해서                                           접속하는 방식

 

 2. Driver Class's FQCN

 3. User

 4. Password

 

 

DML 문장 수행 시, 인트값 반환 ( 문자열 같지만! )