*JDBC_Oracle*

[JDBC] JDBC

깐부로부터 2021. 11. 22. 18:57

JDBC(Java DataBase Connectivity)

 

자바에서 데이터베이스에 접근할 수 있게 해주는 Programming API

 

DBMS(오라클, 마이에스큐엘 등등... )마다 갖고있는 API가 다 다른데 JDBC를 이용하면 공통적인 코드를 작성할 수 있다.  사용하던 DBMS가 바뀌더라도 driver만 수정하면 되므로 코드를 모두 수정하거나 번거로울 일이 없다.

 

 

- DriverManager

 

데이터 원본에 JDBC드라이버를 통하여 커넥션을 만드는 역할

Class.forName() 메소드를 통해 생서되며 반드시 예외처리를 해야함

Connection 객체 생성시에도 직접 객체 생성이 불가능하고

DriverManager 클래스의 getConnection() 메소드를 사용하여 객체 생성

 

 

 

- Connection

 

특정 데이터 원본과 연결된 커넥션을 나타내며 Statement객체를 생성할 때도 Connection객체를 사용하여 

createStatement()메소드를 호출하여 생성

SQL문을 실행키기기 전에 우선 Connection객체가 있어야 한다.

 

 

 

- Statement

 

Connection객체에 의해 프로그램에 리턴되는 객체에 의해 구현되는 일종의 메소드 집합 정의

Connection클래스의 createStatement() 메소드를 호출하여 얻어지며 생성된 Statement객체로 쿼리문을 String객체에 담아 인자로 전달하여 executeQuery() 메소드를 호출하여 SQL 질의 수행

 

 

 

- ResultSet

 

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

SQL질의에 의해 생서된 테이블을 담고 있으며 커서(cursor)로 특정 행에 대한 참조 조작


JDBC 코딩 절차

 

1. DriverManager에 해당 DBMS Driver 등록

* 반드시 ClassNotFoundException 처리를 해야 함

 

 

 

2. 해당 Driver로부터 Connection 객체 생성

* 반드시 SQLException처리를 해야 함

DriverManager 클래스의 getConnection() 호출

DB에 연결(url, 계정명, 비밀번호)

 

 

 

3. 위에서 생성한 Connection 객체로 Statement 객체 생성

* 반드시 SQLException처리를 해야 함

createStatement() 호출

 

 

 

 

4. 위에서 생성한 Statement 객체로 쿼리문 전달하고 ResultSet 리턴받기

 

- 내가 실행할 SQL문이 DML문(insert, update, delete)일 경우
=> stmt.executeUpdate("DML문") : int


- 내가 실행할 SQL문의 SELECT문인 경우 
=> stmt.executeQuery("SELECT문") : ResultSet

 

 

 

 

5. Statement 메소드 이용해서 실행결과 변수로 받기

실제 오라클에 생성한 테이블

 

 

 

 

6. 다 쓴 자원은 반드시 닫기(자원 반납)

* 반드시 SQLException처리를 해야 함

오픈한 역순으로 close(); 처리해준다.

 

 

'*JDBC_Oracle*' 카테고리의 다른 글

[JDBC] 싱글톤 패턴  (0) 2021.11.25
[JDBC] PreparedStatement  (0) 2021.11.25
[JDBC] MVC  (0) 2021.11.23