Mapper Interface

조예빈·2024년 5월 26일
0

Spring

목록 보기
18/19

Mapper Interface

  • Mapping 파일에 기재된 SQL을 호출하기 위한 인터페이스
  • Mapping 파일에 있는 SQL을 자바 인터페이스를 통해 호출할 수 있도록 하는 것
  • Mybatis 매핑 XML에 기재된 SQL을 호출하기 위한 인터페이스

작성법

  1. Mapper interface를 작성함(상단 사진에서의 MemberMapper.java)
package kr.co.project.member;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface MemberMapper {
	// 가입
	int regist(MemberVO vo);

	// 이메일 중복체크
	int emailCheck(String email);

	// 로그인
	MemberVO login(MemberVO vo);
}
  1. Mapping 파일의 namespace 수정(상단 사진에서의 MemberMapper.xml)
<mapper namespace="kr.co.project.member.MemberMapper">
  1. xml파일에 SQL 구문 작성
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.co.project.member.MemberMapper">
	<insert id="regist"
		parameterType="kr.co.project.member.MemberVO">
		INSERT INTO member(
			no, email, pwd,
			name, gender, birthday,
			hp, zipcode,
			addr1,
			addr2, regdate, state
		) values (
			#{no}, #{email}, MD5(#{pwd}),
			#{name},
			#{gender}, #{birthday},
			#{hp}, #{zipcode}, #{addr1},
			#{addr2},
			#{regdate}, #{state}
		)
		<selectKey order="AFTER" keyProperty="no" resultType="int">
			select
			last_insert_id()
		</selectKey>
	</insert>

	<select id="emailCheck" parameterType="String" resultType="int">
		select
		count(*) from member where email=#{email}
	</select>

	<select id="login" parameterType="kr.co.project.member.MemberVO"
		resultType="kr.co.project.member.MemberVO">
		select * from member where email=#{email} and pwd= MD5(#{pwd})
	</select>

</mapper>

DAO와 Mapper의 차이점

DAO(Data Access Object)

  • 실질적으로 DB에 접근하여 데이터를 조회하거나 조작하는 기능을 수행하는 객체
DAOMapper
구현 방식자바 클래스에서 SQL 쿼리를 포함한 메소드 구현mybatis에서 인터페이스와 XML
SQL 관리쿼리를 자바 코드 내에서 직접 작성쿼리를 XML 파일이나 어노테이션으로 외부에 정의하여 관리
매핑수덩으로 ResultSet을 처리하여 자바 객체로 매핑mybatis가 자동으로 매핑
profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글