Mapper

  • 이 페이지는 Mapper 작성 양식과 역할, 어노테이션 등을 서술한 페이지입니다.

Mapper의 역할

  • Mapper는 데이터베이스 처리에서 사용되는 기능의 정의를 담당합니다.
  • Service( 추상체 )와 유사하게 메서드의 형태(파라미터, 반환 타입)만 정의하고 실제 SQL은 작성하지 않습니다.
  • ServiceImpl과 데이터베이스 사이를 연결하는 기준 역할을 수행합니다.
  • 정의된 메서드는 MyBatis XML의 SQL 구문과 연결되어 실행됩니다.

@Mapper

  • 해당 인터페이스가 MyBatis Mapper임을 선언하는 어노테이션입니다.
  • Spring이 해당 인터페이스를 Bean으로 등록하고, XML과 연결하여 사용할 수 있도록 합니다.
  • 이를 통해 별도의 구현 클래스 없이도 SQL을 실행할 수 있습니다.
  • Mapper로 선언된 인터페이스에 정의된 메서드는 MyBatis XML의 SQL과 매핑되어 실행됩니다.

@Repository

  • 해당 클래스가 DB 처리 역할을 수행하는 DAO 계층임을 선언하는 어노테이션입니다.
  • Spring이 해당 객체를 관리하여 Service에서 자동으로 주입받아 사용할 수 있도록 합니다.
  • DB 관련 예외를 Spring 표준 예외로 변환하여 일관된 예외 처리가 가능하도록 합니다.
  • @Mapper와 함께 사용할 경우 해당 인터페이스는 MyBatis Mapper이면서 동시에 Spring의 DAO 컴포넌트로 관리됩니다.

Mapper 작성 양식

  • 아래는 회원에 관련된 내용을 처리하는 Mapper의 구성입니다.

  • 개발 시에 주석, 개행, 띄어쓰기 등을 참조하여 작성해주시길 바랍니다.



/**
 * UserMapper Class ( Class 명 Class )
 *
 * @version : 1.0
 * @author  : 생성자 ID ( SVN, GIT 등 )
 * @date    : 생성일자 ( 20xx.xx.xx )
 * @see
 *
 * <pre>
 * << 개정이력(Modification Information) >>
 * -----------------------------------------------------------------
 *     수정일            수정자                 수정내용
 * -----------------------------------------------------------------
 *     20xx.xx.xx        생성자 ID              최초 생성
 *
 * </pre>
 */
@Mapper
@Repository
public interface UserMapper
{
    /**
     * 사용자 목록 조회
     *
     * @version : 1.0
     * @author  : 생성자 ID ( SVN, GIT 등 )
     * @date    : 생성일자 ( 20xx.xx.xx )
     *
     * @param map
     * @throws Exception
     */
    public List<UserModel> getUserList( Map<String, Object> map ) throws Exception;

    /**
     * 사용자 등록
     *
     * @version : 1.0
     * @author  : 생성자 ID ( SVN, GIT 등 )
     * @date    : 생성일자 ( 20xx.xx.xx )
     *
     * @param userJoinModel
     * @throws Exception
     */
    public void regUser( UserJoinModel userJoinModel ) throws Exception;

    /**
     * 사용자 수정
     *
     * @version : 1.0
     * @author  : 생성자 ID ( SVN, GIT 등 )
     * @date    : 생성일자 ( 20xx.xx.xx )
     *
     * @param userModel
     * @throws Exception
     */
    public void updateUser( UserModel userModel ) throws Exception;

    /**
     * 사용자 삭제
     *
     * @version : 1.0
     * @author  : 생성자 ID ( SVN, GIT 등 )
     * @date    : 생성일자 ( 20xx.xx.xx )
     *
     * @param map
     * @throws Exception
     */
    public void deleteUser( Map<String, Object> map ) throws Exception;

}