Mybatisの注記版のMapperでパラメータ値を取得し、クエリーを曖昧にする方法


@Mapper
public interface UserMapper {

    @Select("select * from User")
    public List retrieveAllUsers();

    //          , #{}          
    @Select("select * from User where id=#{param}")
    public User retrieveUserById(int id);

    //     ,   CONCAT('%',#{param},'%')
    @Select("select * from User where id=#{id} and userName like CONCAT('%',#{name},'%')")
    public User retrieveUserByIdAndName(@Param("id")int id, @Param("name")String names);

    @Insert("INSERT INTO user(userName,userAge,userAddress) VALUES(#{userName},"
            + "#{userAge},#{userAddress})")
    public void addNewUser(User user);

    @Delete("delete from user where id=#{id}")
    public void deleteUser(int id);

    @Update("update user set userName=#{userName}, userAddress=#{userAddress}"
            + " where id=#{id}")
    public void updateUser(User user);
}

複数のパラメータがある場合は@Param指定nameを付けて区別する必要があります.