Spring

# Spring - Mapper 역할

뭉지맘 2025. 2. 17. 15:17

Mapper의 역할

SQL 쿼리를 실행하는 역할

  • MyBatis의 Mapper는 SQL을 실행하고 결과를 Java 객체(DTO)로 매핑해 줌

Service 계층과 DB 간의 다리 역할

  • Service 계층에서 Mapper를 호출하면 DB에서 데이터를 가져와서 DTO로 반환
  • 반대로, 데이터를 DB에 저장하거나 수정할 때도 Mapper를 사용

SQL 쿼리와 Java 코드의 분리

  • 일반적인 JDBC 코드에서는 Connection, PreparedStatement 등을 사용하지만,
    MyBatis의 Mapper를 사용하면 SQL과 Java 코드가 깔끔하게 분리됨

 

Mapper와 다른 계층(Service, Controller, View)의 관계

  1. JSP(View) → Controller
    • 사용자가 /boardList.do에 접속함
  2. Controller → Service
    • BoardController에서 boardService.getBoardList(page, pageSize)를 호출
  3. Service → Mapper
    • BoardServiceImpl에서 boardMapper.getBoardList(page, pageSize)를 호출
  4. Mapper → DB
    • boardMapper가 MyBatis XML과 연결되어 DB에서 데이터 조회
  5. DB 결과 반환
    • Mapper → Service → Controller → JSP(View)로 데이터가 전달됨

 

넘 짜증나게 로직 다 맞게 짜고 완벽한거같은데

404에러로 컨트롤러로 안가서

디버깅도 안되고 어떻게 해야할지 모를때가 많았다.

 

컨트롤러에 있는 파라미터들이

내 db의 타입이랑 맞게 잘 변환했는지 서비스단에서 체크해야댄다!!!!! 

 

db에 uuid로 타입해놓고  파일조회할때 string타입으로 보내니까 계속 404에러떴다.

후 이거때메 오지게 시간잡아먹었었다.

 

항상.. 파라미터 변수명과.. DB변수명이 일치하는것을 확인하고..타입확인하고..잊찌말자..!