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)의 관계
- JSP(View) → Controller
- 사용자가 /boardList.do에 접속함
- Controller → Service
- BoardController에서 boardService.getBoardList(page, pageSize)를 호출
- Service → Mapper
- BoardServiceImpl에서 boardMapper.getBoardList(page, pageSize)를 호출
- Mapper → DB
- boardMapper가 MyBatis XML과 연결되어 DB에서 데이터 조회
- DB 결과 반환
- Mapper → Service → Controller → JSP(View)로 데이터가 전달됨
넘 짜증나게 로직 다 맞게 짜고 완벽한거같은데
404에러로 컨트롤러로 안가서
디버깅도 안되고 어떻게 해야할지 모를때가 많았다.
컨트롤러에 있는 파라미터들이
내 db의 타입이랑 맞게 잘 변환했는지 서비스단에서 체크해야댄다!!!!!
db에 uuid로 타입해놓고 파일조회할때 string타입으로 보내니까 계속 404에러떴다.
후 이거때메 오지게 시간잡아먹었었다.
항상.. 파라미터 변수명과.. DB변수명이 일치하는것을 확인하고..타입확인하고..잊찌말자..!