본문 바로가기
Mybatis/기본 매핑과 SQL 작성

select, insert, update, delete 쿼리 매핑

by DEVLIB 2025. 4. 16.
728x90

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
LIST