[Spring] Mybatis - Mapper Interface
Mapper 인터페이스란?
- 매핑 파일에 기재된 SQL을 호출하기 위한 인터페이스이다.
- Mybatis 3.0부터 생겼다.
- 매핑 파일에 있는 SQL을 인터페이스로 호출한다.
Mapper를 사용하지 않았을 시?
- session.selectOne("namespace.아이디",파라미터); 형식이었다.
- 네임스페이스+"."+SQL ID로 지정해야 한다.
- 문자열로 작성하기 때문에 버그가 생길 수 있다.
- IDE에서 제공하는 code assist를 사용할 수 없다.
Mapper를 사용했을 때
- Mapper 인터페이스를 개발자가 직접 작성한다.
- 패키지 이름+"."+인터페이스이름+"."+메서드이름이 네임스페이스+"."+SQL의 ID를 설정해야 한다.
- 네임스페이스 속성에는 패키지를 포함한 Mapper 인터페이스 이름 형식이다.
- SQL ID에는 매핑하는 메서드 이름을 지정하는 것.
Mapper 인터페이스 작성
- 반드시 인터페이스로 선언해주어야 한다.
- 네임스페이스명은 패키지 포함 인터페이스 이름으로 작성.
ex)<mapper namespace="myspring.user.dao.UserMapper">
메서드명은 SQLID와 동일하게작성.
1. root-context 설정
<!-- 개발자가 직접 DAO를 설정하지 않아도 자동으로
Mapper 인터페이스를 활용하는 객체를 생성함
소스마다 설정하지 않고 자동으로 경로를 설정해서 인식시킬 수 있음 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="kr.or.ddit.*"></property>
</bean>
2. Mapper가 될 Interface 생성
3. SQL.xml의 namespace 변경
<mapper namespace="kr.or.ddit.LprodMapper">
4. ServiceImpl을 Dao가 아닌 Mapper로 연결
package kr.or.ddit;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import kr.or.ddit.mapper.LprodMapper;
@Service
public class LprodServiceImpl implements LprodService {
//DI
@Autowired
private LprodMapper lprodMapper;
// LprodDao lprodDao; DAO가 LprodMapper로 변경됨
//상품분류 별 거래처 목록
@Override
public List<LprodVO> list(Map<String, Object> map){
return this.lprodMapper.list(map);
}
//상품분류 별 거래처 목록 행의 수
@Override
public int listCount(Map<String, Object> map) {
return this.lprodMapper.listCount(map);
}
//거래처 상세 정보
@Override
public BuyerVO detail(String buyerId) {
return this.lprodMapper.detail(buyerId);
}
//거래처 수정
@Override
public int modify(BuyerVO buyerVO) {
return this.lprodMapper.modify(buyerVO);
}
//로그인 확인
@Override
public MemberVO checkLogin(MemberVO memberVO) {
return this.lprodMapper.checkLogin(memberVO);
}
}
Author And Source
이 문제에 관하여([Spring] Mybatis - Mapper Interface), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gksmf6699/Spring-Mybatis-Mapper-Interface저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)