생각
- Mapper에서 @Param 어노테이션을 사용하여 값을 xml로 전달한다고는 이해하고 있는데 정확히 알지는 못하여서 정리하고자 글을 작성한다.
@Param
- MyBatis에서의 @Param은 SQL 쿼리에서 사용하는 파라미터를 지정하는데 사용된다.
- 여러 개의 파라미터를 메소드에 전달할 때 각각의 파라미터에 이름을 붙여 SQL 쿼리에서 사용할 수 있게 한다.
예시 1
// Controller 예시
public interface UserMapper {
User getUser(@Param("id") int id, @Param("name") String name);
}
// xml 예시
<mapper namespace="cohttp://m.mysite.mapper.UserMapper">
<select id="getUser" parameterType="map" resultType="cohttp://m.mysite.dto.User">
SELECT * FROM user_table WHERE id = #{id} AND name = #{name}
</select>
</mapper>
예시 2
// Controller 예시2
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id} AND name = #{name}")
User getUser(@Param("id") int id, @Param("name") String name);
}
- 예시 2는 별도로 .xml 작성하지 않고 Controller에서 사용해도 되는 거 같음.
'Java > SpringBoot' 카테고리의 다른 글
UserDetailsService, UserDetails, GrantedAuthority, SimpleGrantedAuthority, stream (0) | 2024.10.28 |
---|---|
@Configuration, @Bean, @EnableWebSecurity, SecurityFilterChain, HttpSecurity (0) | 2024.10.28 |
@ModelAttribute (1) | 2024.10.28 |
@RequestParm (0) | 2024.10.28 |
[MyBatis] <resultMap>, <id>, <result>, <collection> (1) | 2024.10.28 |