[mybatis]๋งคํผ ๋ฐ์ธ๋ฉ(Mapper Binding)
๐ค๋งคํผ ๋ฐ์ธ๋ฉ(Mapper Binding) : SQL ๋ช ๋ น์ XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์ ๋ฑ๋กํ๊ณ DAO ํด๋์ค๋ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์ ์ฌ์ฉํ์ฌ ์์ฑ
=> ๋งคํผ ๋ฐ์ธ๋ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ๊ณผ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์ ํ๋์ ๋งคํผ๋ก ๋ฑ๋ก๋์ด ๋์๋๋๋ก ์ค์ ๊ฐ๋ฅ
=> mapper ์๋ฆฌ๋จผํธ์๋ XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ ๋๋ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ ์ค ํ๋๋ง ๋งคํผ๋ก ๋ฑ๋กํ์ฌ ์ฌ์ฉ
์ค์ต ์ฝ๋๐ฉ๐ป
โฌ๏ธmybatis-config.xml ํ์ผ์ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ๋ง ๋งคํผ๋ก ๋ฑ๋กํจ
//์๋ต
<mappers>
<package name="xyz.itwill.mapper"/>
</mappers>
</configuration>
โซXML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ๊ณผ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ๋ก ๋งคํผ ๋ฐ์ธ๋ฉ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ท์นโซ
1) XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์์ mapper ์๋ฆฌ๋จผํธ์ namespace ์์ฑ๊ฐ์ผ๋ก Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์ ๊ฒฝ๋ก๋ก ์ค์
=> MyMemberMapper๋ก๋ง ์์ฑ๋ง ๋ฐ์ธ๋ฉ ์๋จ!!!
2) XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์์ SQL ๋ช ๋ น์ด ๋ฑ๋ก๋ ์๋ฆฌ๋จผํธ๋ฅผ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ์์ ๊ฐ์ ํ์์ ์ถ์๋ฉ์๋๋ก ์ ์ธ
=> ์ด๊ฑด ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ๋งคํผ ํ์ผ๊ณผ ํจ๊ป ๋ด์ผํจ
โฌ๏ธXML๊ธฐ๋ฐ ๋งคํผ ํ์ผ
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.itwill.mapper.MyMemberMapper">
<insert id="insertMember" parameterType="MyMember">
insert into mymember values(#{id}, #{name}, #{phone}, #{email})
</insert>
<update id="updateMember" parameterType="MyMember">
update mymember set name=#{name}, phone=#{phone}, email=#{email} where id=#{id}
</update>
<delete id="deleteMember" parameterType="string">
delete from mymember where id=#{id}
</delete>
<select id="selectMember" parameterType="string" resultType="MyMember">
select id, name, phone, email from mymember where id=#{id}
</select>
<select id="selectMemberList" resultType="MyMember">
select id, name, phone, email from mymember order by id
</select>
</mapper>
โฌ๏ธ Interface๊ธฐ๋ฐ ๋งคํผ ํ์ผ
โช๏ธ SQL ๋ช
๋ น์ด ๋ฑ๋ก๋ ์๋ฆฌ๋จผํธ๋ฅผ ์ธํฐํ์ด์ค์ ์ถ์๋ฉ์๋๋ก ์์ฑ
=> ์๋ฆฌ๋จผํธ์ id ์์ฑ๊ฐ์ผ๋ก ์ถ์๋ฉ์๋์ ์ด๋ฆ ์์ฑ
=> ์๋ฆฌ๋จผํธ์ parameterType ์์ฑ๊ฐ์ผ๋ก ์ถ์๋ฉ์๋์ ๋งค๊ฐ๋ณ์ ์๋ฃํ ์์ฑ
=> ์๋ฆฌ๋จผํธ์ resultType ์์ฑ๊ฐ์ผ๋ก ์ถ์๋ฉ์๋์ ๋ฐํํ ์์ฑ - ๋ค์คํ์ด ๊ฒ์๋๋ ๊ฒฝ์ฐ List ๊ฐ์ฒด์ ์์ ์๋ฃํ์ผ๋ก ์ค์
package xyz.itwill.mapper;
import java.util.List;
import xyz.itwill.dto.MyMember;
//XML ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ๊ณผ ๋ฐ์ธ๋ฉ๋ Interface ๊ธฐ๋ฐ์ ๋งคํผ ํ์ผ - ์ธํฐํ์ด์ค
public interface MyMemberMapper {
int insertMember(MyMember member);
int updateMember(MyMember member);
int deleteMember(String id);
MyMember selectMember(String id);
List<MyMember> selectMemberList();
}