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 |