원래 게시글

네이버 블로그에 작성된 글을 tistory로 옮기겠습니다!

 


 

[개념 익히기]

DAO 란?

Data Access Object ;DAO

DB의 데이터에 접근하기 위한 객체

+

싱글톤 패턴

: 한개의 인스턴스로만 작성할 수 있도록 클래스 설계 (메모리 효율)

1. 생성자 private

2. 인스턴스 생성 private

3. (외부에서 사용 못하게) getter만 생성

DTO 란?

Data Transfer Object ; DTO

계층간(Controller, View ...) 데이터 교환을 위한 Java Bean

+

getter / setter / toString()

 

 

VO 란?

Value Object ; VO

Read-Only의 속성을 가진 오브젝트 (getter 기능만 존재)

 
 

util > DBManager.java

 

DAO를 작성하다보면, 공통적인 부분이 존재한다.

예를 들면,

DAO에서 DB연결을 관리하는 부분인 Connection

+ getConnection()메소드에서 DB를 연결하는 코드가 작성 됨

그리고 DAO의 메소드 내에서

반복적인 부분이 있습니다.

  1. 네트워크를 통해 DB와 연결을 맺는 단계(Connection)
  2. DB에 보낼 SQL을 작성하고 전송하는 단계(Statement)
  3. DB가 보낸 결과를 받아서 처리하는 단계(ResultSet)
  4. DB와 연결을 종료하는 단계(.close())

로 진행되는데,

바로 .close()부분이 반복됩니다.

결과값을 rs에 셋팅하거나, executeUpdate()를 통해 int값을 반환하면

rs를 닫거나 안닫는 2가지의 상황이 생기게 됩니다.

그래서,

같은 이름(close)의 파라미터가 수가 다른 2개의 메소드를 생성하면 됩니다.

DBManager를 생성했으니 적용해볼게요.
 
 

 

먼저 DAO에서

 

 

DBManager를 import 해줍니다.

그리고 DAO 내에서는

 
 
 

DBManager의 메소드 getConnection()을 호출해줍니다.

DAO의 각 메소드 내에서는 파라미터에 맞게

 

이와 같이 사용하면 됩니다.

 

+ Recent posts