레스토랑 관리 - 레스토랑 조회(Paging 처리)

2022. 12. 19. 01:37·혼자하는 프로젝트/배달의 민족 클론코딩

레스토랑을 조회하는 부분이다. 하지만 유저를 조회하는 부분과는 약간의 차이가 있다. 인스타그램과 배달의 민족 앱을 생각해보면 밑으로 내리면 새로운 부분이 계속 나온다. 이렇게 밑으로 내리면서 새로운 가계가 계속 나오게 조회하기 위해 페이징 처리를 해보았다.

레스토랑 조회(Paging 처리)

Model 

package com.example.delivery.src.restaurant.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
public class GetRestaurantRes {
    private int restaurantIdx;
    private String name;
    private String delivery_category;
    private String category;
    private int minimumCost;
    private int deliveryCost;
    private int deliveryTime;
    private String location;
    private String operatingTime;
    private String holiday;
    private String explantion;
}

RestaurantController

/***
     * 레스토랑 카테고리 별 조회
     * paging 처리
     * [Get] /restaurants? category=
     */
    @ResponseBody
    @GetMapping("/deliveryCategory")
    public BaseResponse<List<GetRestaurantRes>> getDeliveryCategory(@RequestParam() String delivery_category, int offset){
        //Param으로 category와 offset을 받는다.
				try{
            List<GetRestaurantRes> getRestaurantRes = restaurantProvider.getDeliveryCategory(delivery_category,offset);
            return new BaseResponse<>(getRestaurantRes);
        } catch (BaseException exception){
            return new BaseResponse<>(exception.getStatus());
        }
    }

Parameter로 카테고리와 offset을 입력 받는다. 즉 몇번째 페이지에 몇개의 정보만 보여 줄 것인지를 계속 파라터로 알려주는 것이다.

RestaurantProvider

public List<GetRestaurantRes> getDeliveryCategory(String delivery_category, int offset) throws BaseException {
        try{
            List<GetRestaurantRes> getRestaurantRes = restaurantDao.getDeliveryCategory(delivery_category,offset);
            return getRestaurantRes;
        } catch (Exception exception){
            throw new BaseException(BaseResponseStatus.DATABASE_ERROR);
        }
    }

RestaurantDao

//Limit문을 사용하여 구현
public List<GetRestaurantRes> getDeliveryCategory(String delivery_category, int offset){
        String getDeliveryCategoryQuery = "select * from Restaurant where delivery_category = ? order by restaurantIdx LIMIT ?,5;";
        Object[] getDeliveryCategoryParam = new Object[]{delivery_category, offset};
        return this.jdbcTemplate.query(getDeliveryCategoryQuery,
                (rs,rowNum) ->   new GetRestaurantRes(
                        rs.getInt("restaurantIdx"),
                        rs.getString("name"),
                        rs.getString("delivery_category"),
                        rs.getString("category"),
                        rs.getInt("minimumCost"),
                        rs.getInt("deliveryCost"),
                        rs.getInt("deliveryTime"),
                        rs.getString("location"),
                        rs.getString("operatingTime"),
                        rs.getString("holiday"),
                        rs.getString("explantion")) ,getDeliveryCategoryParam
                );
    }

리미트 구문을 사용해서 offset의 수만큼 만 정보를 조회하도록 만들었다.

실행결과

정보는 여러개지만 5개만 보여주도록 만들었다.

'혼자하는 프로젝트 > 배달의 민족 클론코딩' 카테고리의 다른 글

레스토랑 관리 - 레스토랑 등록  (0) 2022.12.19
유저관리 - 회원정보 변경 및 조회  (0) 2022.12.19
유저관리 - 로그인  (0) 2022.12.16
유저 관리 - 회원 가입  (0) 2022.12.14
유저 관리 - 준비 단계  (0) 2022.12.14
'혼자하는 프로젝트/배달의 민족 클론코딩' 카테고리의 다른 글
  • 레스토랑 관리 - 레스토랑 등록
  • 유저관리 - 회원정보 변경 및 조회
  • 유저관리 - 로그인
  • 유저 관리 - 회원 가입
인프라 감자
인프라 감자
  • 인프라 감자
    삶은 인프라
    인프라 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (243)
      • 클라우드&인프라 (28)
        • 인프라 공부 (4)
        • AWS 구조와 서비스 (18)
        • 클라우드 공부 (4)
        • Terraform (2)
      • AWS Cloud School (13)
        • project (5)
        • Linux, Network (6)
        • Docker (2)
      • BackEnd (162)
        • JAVA 공부 (15)
        • 알고리즘 공부 (71)
        • MySQL 문제 풀기 (8)
        • 스프링 핵심 원리 - 기본편 (18)
        • 스프링 MVC 1편 (4)
        • 자바 ORM 표준 JPA 프로그래밍 (21)
        • 실전! 스프링 부트와 JPA 활용1 (8)
        • 실전! 스프링 부트와 JPA 활용2 (5)
        • 스프링 데이터 JPA (8)
        • Querydsl (4)
      • 혼자하는 프로젝트 (32)
        • 배달의 민족 클론코딩 (7)
        • 나만의 프로젝트 (10)
        • 스프링 부트로 구현한 웹 (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Email
    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    쿼드 압축
    중첩 선언
    dp
    정렬
    백트래킹
    자바
    완전탐색
    다이나믹 프로그래밍
    상속
    네트워크 기본 용어
    조합
    자동 배포
    스프링 핵심 원리-기본편
    VPN
    디팬스 게임
    querydsl
    linux
    이것이 자바다
    프로그래머스
    유니온 파인드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
인프라 감자
레스토랑 관리 - 레스토랑 조회(Paging 처리)
상단으로

티스토리툴바