스프링 프로젝트를 들어가면서 Mybatis를 사용하게 되었다. 깃허브에 다른사람들의 Mybatis 사용한 사례들을 보면 프로젝트 구조가 크게 두가지로 나눠지는 모습을 볼 수 있었다.
1) DAO.java - Mapper.xml
2) Mapper.java - Mapper.xml
이 두방식이다. 언뜻 보기에는 DAO.java와 Mapper.java 둘의 이름만 달라 보인다. 어떤 차이가 날까?
DAO는 Data Acces Object로 데이터베이스에 접근해서 데이터를 조회하거나 조작하는 기능을 전담하는 객체이다. DAO를 사용하는 이유는 저수준의 로직(데이터베이스 접근 로직)과 고급 비즈니스 로직을 분리하기 위함이다. DAO는 간단하게 말하면 DB에 접속하여 데이터의 CRUD(생성, 읽기, 갱신, 삭제) 작업을 시행하는 클래스이다.
sesseion.selectOne(“com.test.mapper.testMapper.getUser )Mapper는 DB와 객체간의 매핑을 관리하기 위해 사용한다. Mybatis 3.0 이후 부터 기존 DAO를 대체하여 사용하기 시작했다.