02. 프레임워크/spring
Dao 와 Mapper의 차이
킹다킹
2021. 8. 10. 15:13
반응형
1. MVC Model
내가 지금까지 구현했던 프로젝트는 모두 Controller - Serivce - Dao - query.xml 구조였다.
하지만 Controller - Service - Mapper - query.xml 구조에서 왜 Dao 대신 Mapper를 사용하는지에 대해 궁금했다.
2. Dao와 Mapper의 차이점
Dao(Data Access Object)는 인터페이스와 클래스의 결합된 형태이다.
Mapper는 단순 인터페이스
코드로 보자면 Mapper는
@Mapper
public interface UserMapper {
int addUser(...);
}
@Mapper 어노테이션을 사용한다. 그리고 메소드 명은 쿼리의 id와 똑같이 작성해야 한다.
Dao는
public List<UserList> test(Map<String, Object> test) throws Exception {
return selectList(test, "User.selectUserList");
}
결론적으로 Dao보다는 Mapper가 더 나은 것 같다.
DAO는 데이터 객체에 직접적으로 접근하기 때문에 안전하지 않다.
반응형