728x90

spring boot mybatis 사용 시 dao, dto, service, mapper 개념에 대해 알아보자

 

DTO(Data Transfer Object)

계층간 데이터 교환을 위한 객체

DB에서 데이터를 얻어 service나 controller로 보낼 때 사용한다

로직을 갖고 있지 않은 순수한 데이터 객체이다. 데이터 타입과 사이즈를 정의할 수 있다.

@Data annotation은

@Getter / @Setter, @ToString, @EqualsAndHashCode와 @RequiredArgsConstructor 를 합친 것

 

---> 해당 프로젝트에서 게시판을 구현하기 위해 BoardDto 를 만들고 DB 테이블에 있는 데이터 객체와 동일한 객체를 생성해 주었다.

 

DAO(Data Access Object)

mapper와 dto를 연결하는 것

CRUD 기능을 정의된 메소드를 통해 구현한다

---> mapper에 id와 동일한 메소드를 정의하였다 

 

mapper

XML 파일로 쿼리를 작성하는 곳

dao에서 CRUD 함수에 해당하는 실제 쿼리를 정의해 놓은 것

#, $ 표시를 사용하여 파라미터값을 사용함

--->resultType 데이터를 반환할 형태, parameterType 파라미터의 자료형을 명시한다.

service

DAO를 여러개 묶어서 사용할 때 service를 사용

DAO로 DB에 접근하고 DTO로 데이터를 전달받은 다음, 비지니스 로직을 처리해 적절한 데이터를 반환한다.

@Autowired Repository를 통해 repository의 method를 이용 적절한 Business Logic을 처리한다.

728x90

+ Recent posts