# 1. Language/☕ Java

SpringBoot # Controller-Service-DAO-mapper.xml

둥굴둥굴둥굴레차 2021. 9. 17. 01:02

Mybatis의 기능

DB 커넥션을 맺고 끝는 것을 자동화해줌.

SQL 쿼리를 실행 및 결과를 DTO에 알아서 세팅해줌.

 


 

mapper.xml

DAO의 요청에 따라 사용할 SQL 쿼리문을 작성하는 곳.

.xml에 정의된 이름과 DAO인터페이스에 정의된 메소드 이름이 같은 것 끼리 매핑된다.

 

DAO(Data Access Object)

실제로 DB에 접근해 데이터를 조회 및 조작하고 그 결과값을 리턴해 준다.

.xml에 정의된 이름과 DAO인터페이스에 정의된 메소드 이름이 같은 것 끼리 매핑된다.

DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용.

 

 

DTO(Data Transfer Object).

Request와 Reponse가 일어날 때 DTO의 틀에 맞게 데이터를 담아 Service나 Controller 등으로 전달해준다.

계층간 데이터 교환을 위한 객체이며, 로직을 가지고 있지 않은 순수한 데이터 객체다.

 

Service

세분화된 비즈니스 로직을 처리하는 객체.

비즈니스 로직이 들어가는 부분이다.

 

Controller

Client의 요청에 대한 결과값을 반환해주기 위해 Service에 명령을 내리고 Service로 부터 얻어낸 결과값을 Client에게 전달해준다.

 


 

 

Client : 서버야 ~기능좀 요청할게!! 

 

(Request URL에 알맞은 Controller 가 해당 요청을 수신한다.)

 

Controller : Client가 이런 요청을 하네. 나 ~방식으로 요청 처리 할테니 ~좀 해줘.

Service : 잠시만. DAO야 ~쿼리 수행한 결과좀 줘.

DAO : 잠시만. Mapper.xml 아 쿼리 있니?

Mapper.xml: 어 있음. 실행해서 결과 가져옴 기달. 

 

 

(DB에서 쿼리 수행)

 

Mapper.xml: DAO야 결과 나왔다. 방금 전달했어!

DAO : 땡큐! Service야 결과 나왔다. 방금 전달했어!

Service : 땡큐! Service야 결과 나왔다. 방금 전달했어!

Controller : 아 다들 너무 수고했고^^~~ Client야 너가 요청한 것에 대한 결과값 여기있어!