DAO(Data Access Object)

Soobin Kim·2024년 3월 27일

공부

목록 보기
8/15

데이터베이스 처리 클래스 (DAO)

데이터베이스에 데이터(VO, DTO)를 저장, 수정, 검색, 삭제 등 처리하기 위해 만들어지는 Model.
CRUD 동작을 가지고 있는 클래스, 비즈니스 로직을 처리하는 클래스.


필요성

1) CRUD 동작과 비즈니스 로직을 처리

  • DAO(Data Access Object)는 데이터베이스와의 상호작용을 담당하는 클래스이다. 데이터의 저장, 수정, 조회, 삭제(Create, Read, Update, Delete) 동작을 처리하며, 비즈니스 로직을 구현한다.
  • 아래 예시에서는 CarDTO 객체를 이용해 자동차 정보를 데이터베이스에 삽입, 수정, 조회, 삭제하는 CRUD 작업을 수행하는 CarDAO 클래스를 보여준다.

DAO 클래스 예시

public class CarDAO {
    // CREATE
    public void carInsert(CarDTO car){
        System.out.println("car 정보 저장 비즈니스 로직 수행");
    }
    
    // UPDATE
    public void carUpdate(CarDTO car){
        System.out.println("car 정보 수정 비즈니스 로직 수행");
    }
    
    // READ
    public void carSelect(CarDTO car){
        System.out.println("car 정보 조회 비즈니스 로직 수행");
    }
    
    // DELETE
    public void carDelete(CarDTO car){
        System.out.println("car 정보 삭제 비즈니스 로직 수행");
    }
}

시작 클래스 예시 (메인 클래스)

public class CarTest {
    public static void main(String[] args){
        CarDTO carDTO = createCarDTOInstance();  // CarDTO 객체 생성
        CarDAO carDAO = new CarDAO();  // CarDAO 객체 생성

        // CREATE: 데이터베이스에 자동차 정보 삽입
        carDAO.carInsert(carDTO);

        // UPDATE: 자동차 정보 수정
        carDAO.carUpdate(carDTO);

        // READ: 자동차 정보 조회
        carDAO.carSelect(carDTO);

        // DELETE: 자동차 정보 삭제
        carDAO.carDelete(carDTO);
    }

    // CarDTO 객체를 생성하는 메서드 (예시)
    private static CarDTO createCarDTOInstance() {
        CarDTO carDTO = new CarDTO();
        carDTO.setCarSn(12345);
        carDTO.setCarName("현대 Sonata");
        carDTO.setCarPrice(25000);
        carDTO.setCarOwner("김철수");
        carDTO.setCarYear(2023);
        carDTO.setCarType("Sedan");
        return carDTO;
    }
}

핵심 개념

  1. DAO 클래스

    • 데이터베이스와 직접 상호작용을 담당하는 클래스.
    • CRUD 기능을 제공하고, 데이터베이스에 대한 비즈니스 로직을 처리한다.
  2. DTO 클래스

    • CarDTO와 같은 데이터 전송 객체는 데이터를 주고받는 역할을 한다.
    • CarDTO 클래스는 자동차의 정보(차량 번호, 이름, 가격 등)를 포함한 객체를 제공한다.
  3. 비즈니스 로직

    • DAO 클래스는 데이터의 저장, 수정, 삭제 등의 로직을 캡슐화하여 제공하며, 이러한 작업은 주로 서비스 계층에서 호출된다.

DAO 패턴은 비즈니스 로직과 데이터 접근 로직을 분리하여 코드의 유지보수성을 높이고, 데이터베이스 작업을 중앙 집중화할 수 있도록 돕는다.

0개의 댓글