본문 바로가기
JDBC

[JDBC] JDBC? "Java + Database" Connectivity, JDBC 처리순서 및 DAO클래스 작성과 예시

by 나는 개발자 2021. 2. 21.
TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

 

 

JDBC란?

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

 

 

 

 

 

JDBC에서의 MVC역할

 

자바에서 총 4개의 클래스(MVC)를 만들어준다.

MVC

Vo
(Value Object)
DB테이블의 한 행에 대한 데이터를 기록할 수 있는 저장용 객체

* Vo 조건
1) 반드시 캡슐화 적용
2) 기본생성자 및 매개변수 생성자 작성필수
3) 모든 필드에 대한 Setter와 Getter메소드 작성필수
Run 프로그램 실행만을 담당한다.

사용자가 보게될 첫 화면이며, 화면만 띄워주고 끝나게된다.
실행을 담당하기에 메인메소드를 포함시켜 만들어준다.
View 사용자가 보게될 시각적인 요소(화면)를 담당한다.

사용자에게 보여질 출력 + 입력 받기를 진행한다.
출력의 System.out.print()와 입력의 Scanner는 View에서만 사용하도록 한다. 
Controller View를 통해서 요청한 기능을 처리한다.

View의 메소드를 호출하고, 메소드로 전달된 데이터를 가공처리한 후 Dao에 메소드를 전달한다.
Dao로부터 반환받은 결과에 따라 사용자가 보게 될 View(응답화면)을 결정한다. (성공 및 실패의 화면)
Dao
(Data Access Object)
Controller로 부터 호출된 기능을 수행하기 위해 DB에 직접적으로 접근하는 기능을 한다.
DB와의 연결을 통해 해당 SQL문을 실행하고 그에 따른 결과를 받는다. (JDBC)

 

 

* JDBC용 객체

- Connection : DB의 연결 정보를 담고 있는 객체

- [Prepared] Statement : 해당 DB에 SQL문을 전달하고 실행한 후 결과를 받아내는 객체

- ResultSet : 실행한 SQL문이 SELECT문일 경우, 조회된 결과들이 담겨있는 객체

 

 

* Statement 특징 : 완성된 sql 문을 실행할 수 있는 객체

 

 

 

 

 

** JDBC 처리순서

순서 처리 내용
1 JDBC driver 등록 해당 DBMS가 제공하는 클래스 등록
2 Connection 객체 생성 접속하고자하는 DB정보를 입력해서 DB에 접속하면서 생성
3 Statement 객체 생성 Connection객체를 이용해서 생성
4 SQL문 전달하면서 실행 Statement 객체를 이용해서 SQL문 실행
            > SELECT문일 경우 - executeQuery메소드를 이용해서 실행
            > DML문일 경우 - executeUpdate메소드를 이용해서 실행
5 결과 받기             > SELECT문일 경우 - ResultSet 객체 ( 조회된 데이터가 담겨있는 객체) -> 6-1
            > DML문일 경우 - int(처리된 행 수 ) -> 6-2
6-1 SELECT문일 경우 Result Set에 담겨있는 모든 데이터를 하나씩 뽑아서 vo객체에 담기
6-2 DML문일 경우 트랜젝션 처리 (성공이면 commit / 실패면 rollback)
7 사용된 JDBC용 객체 반납 close -> 생성된 역순으로 닫아주기
8 결과 반환 (Controller)             > SELECT문일 경우 - 6-1) 만들어진 결과
            > DML문일 경우 - int (처리된 행 수)

 

 

 

 

* DAO 클래스 예시 

 

 

 

 

 

 

 

* Controller 클래스 예시

 

 

 

 

 

 

 

 

 

 

댓글