본문 바로가기

개발 지식/Java

Mybatis Mapper 인터페이스

반응형

Mapper 인터페이스란

관계형 데이터베이스(RDBMS)를 자바의 객체 지향 모델로 매핑하게 도와주는 인터페이스다. 해당 프레임워크는 RDBMS에 접근할 때 필요한 자바코드를 현저하게 줄일 수 있도록 해준다. 간단한 XML Statements를 사용해서 java beans를 SQL statement에 맵핑시킨다.

또한, MyBatis Data Mapper API는 개발자에게 java beans 객체를 PreparedStatment 파라미터와 ResultSets으로 쉽게 매핑할 수 있도록 한다. 즉, 파라미터(beans, Map 등)로써 객체를 제공한다. 파라미터 객체는 update 내에 입력 값을 세팅하기 위해 사용되거나 쿼리문의 where 절을 세팅하기 위해서 사용된다.

Mapping된 statment를 실행하면 Data Mapper 프레임워크는 PreparedStatement 인스턴스를 생성할 것이고 제공된 파라미터 객체를 사용해서 파라미터를 세팅한다. 그리고 statement를 실행하고 ResultSet으로부터 결과 객체를 생성한다.

update의 경우에 영향을 미친 rows의 숫자를 반환한다. 조회 문일 경우에 한 개의 객체 또는 컬렉션 객체를 반환한다. 파라미터처럼 결과 객체는 java beans, Map 또는 XML이 될 수 있다.

Mapper을 사용하지 않는다면

  • session.selectOne("userNS.selectUserById", id); 형식이었다.
  • namespace + "." + SQL ID 로 지정해야한다.
  • 문자열로 작성하기 때문에 버그가 생길 수 있다.
  • IDE에서 제공하는 code assist를 사용할 수 없다.

Mapper 사용했을 때

  • 맵퍼 인터페이스를 개발자가 직접 작성한다.
  • 패키지 이름 + "." + 인터페이스 이름 + "." + 메소드 이름의 네임스페이스 + "." + SQL의 ID를 설정해야 한다.
  • namespace 속성에는 패키지를 포함한 Mapper 인터페이스 이름 형식이다.
  • SQL ID 에는 매핑하는 메소드 이름을 지정하는 것이다.

Mapper 인터페이스 작성

  • 반드시 인터페이스로 선언해주어야 한다.
  • namespace 명은 패키지 포함 인터페이스 이름으로 작성한다.
    • ex) <mapper namespace="myspring.user.dao.UserMapper">
  • 메소드명은 SQL ID와 동일하게 작성한다.


Reference : https://bigstupid.tistory.com/23

반응형

'개발 지식 > Java' 카테고리의 다른 글

[JAVA] JDBC란  (1) 2020.02.05
[JAVA] Servlet(서블릿) 이란  (0) 2020.01.27
[Java] UnsatisfiedLinkError  (0) 2019.12.16
[Java] Robot 클래스 정리  (0) 2019.12.10
Java 데이터 타입 Integer와 int의 차이  (0) 2019.11.27