Mybatis/기본 매핑과 SQL 작성
select, insert, update, delete 쿼리 매핑
by DEVLIB
2025. 4. 16.
SELECT 쿼리 매핑
XML 매핑 예시
<select id="selectUserById" parameterType="int" resultType="User">
SELECT * FROM users WHERE id = #{id}
</select>
인터페이스 매핑
User selectUserById(int id);
- #{id}: 파라미터 바인딩
- resultType: 결과를 매핑할 DTO 클래스
INSERT 쿼리 매핑
XML 매핑 예시
<insert id="insertUser" parameterType="User">
INSERT INTO users (name, email)
VALUES (#{name}, #{email})
</insert>
인터페이스 매핑
void insertUser(User user);
- parameterType="User" → user.getName(), user.getEmail() 등 자동 매핑
UPDATE 쿼리 매핑
XML 매핑 예시
<update id="updateUser" parameterType="User">
UPDATE users
SET name = #{name}, email = #{email}
WHERE id = #{id}
</update>
인터페이스 매핑
int updateUser(User user);
- int를 반환하면 수정된 행 수를 받을 수 있어요.
DELETE 쿼리 매핑
XML 매핑 예시
<delete id="deleteUserById" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
인터페이스 매핑
int deleteUserById(int id);
parameterType, resultType 정리
속성 |
설명 |
parameterType |
파라미터로 넘기는 객체 타입 (예: int, User, Map) |
resultType |
SELECT 결과를 매핑할 타입 (예: User, List<User>) |
실전
- insert, update, delete는 보통 영향받은 row 수(int) 를 반환하도록 구현합니다.
- SELECT 결과가 1건이면 resultType="객체", 여러 건이면 List<객체>를 반환합니다.
- 파라미터가 여러 개일 경우 @Param 어노테이션을 사용할 수 있어요.
User findUser(@Param("name") String name, @Param("email") String email);
마무리 정리
SQL 종류 |
XML 태그 |
반환 타입 예시 |
SELECT |
<select> |
User, List<User> |
INSERT |
<insert> |
void, int |
UPDATE |
<update> |
int |
DELETE |
<delete> |
int |