[스프링부트 나만의 블로그 만들기] 04. 초기 테스트 (전체 select 및 paging 테스트)

이경민·2022년 9월 15일
0

spring

목록 보기
15/20

User 테이블의 전체 내용 불러오기

List를 사용해서 User 테이블에 있는 data 전체 불러오기.

  • findAll 함수를 사용.

코드

// http://localhost:8080/dummy/users
// 모든 user 내용 불러오기
@GetMapping("/dummy/users")
public List<User> list() {
    return userRepository.findAll();
}

1 page에 User 2명씩 배치

  • @PageableDefault 사용
  • 쿼리를 사용해 page 번호 입력: ?page=1

코드 1

// http://localhost:8080/dummy/user?page=0
// http://localhost:8080/dummy/user?page=1
@GetMapping("dummy/user")
public Page<User> pageList(@PageableDefault(size=2, sort="id", direction= Sort.Direction.DESC) Pageable pageable ) {
    Page<User> users=userRepository.findAll(pageable);
    return users;
}

코드 2

위 코드 정리 ver

@GetMapping("dummy/user2")
public List<User> pageList2(@PageableDefault(size=2, sort="id", direction= Sort.Direction.DESC) Pageable pageable ) {
    Page<User> pagingUser=userRepository.findAll(pageable);
    if (pagingUser.isLast()) {
        // 분기처리 가능
    }
    List<User> users2=pagingUser.getContent();
    return users2;
}

추가 내용

과거에 공공 api를 활용하여 불러온 data paging한 방법

코드 github 링크

//Get 전체 정책 데이터 공공데이터 api 이용
@ResponseBody
@GetMapping("/api/{page}/{perPage}")
public String callApi(@PathVariable("page")int page, @PathVariable("perPage")int perPage) throws IOException {
    StringBuilder result = new StringBuilder();
    String urlStr = "https://api.odcloud.kr/api/gov24/v1/serviceDetail?" +
            "page="+page+"&"+
            "perPage="+perPage+"&"+
            "serviceKey=4qdywegfVpdcSvD0uF1zrGAJ4VMzz9V%2Fybv%2FD6U0NsNY9OpKYNKE8IOqfgyj912iwCHDcmYoFlxNOlND07KsZA%3D%3D";
    URL url = new URL(urlStr);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setRequestMethod("GET");

    BufferedReader br;
    br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
    String returnLine;
    while ((returnLine = br.readLine()) != null) {
        result.append(returnLine + "\n\r");
    }
    urlConnection.disconnect();
    return result.toString();
}

0개의 댓글