使用Spring的Pageable來實現分頁查詢
阿新 • • 發佈:2018-12-10
1.匯入包:
import org.springframework.data.domain.Pageable;
2.測試類:
@Test public void whenQuerySeccess() throws Exception{ mockMvc.perform( get("/user") //分頁查詢引數,第三頁,每頁15個數據,按照年齡倒序排序 .param("size","15") .param("page","3") .param("sort","age,desc")//傳送get請求,並帶請求引數 .contentType(MediaType.APPLICATION_JSON_UTF8) //編碼格式為json的utf8 ).andExpect(status().isOk()) //返回的狀態碼為200 OK .andExpect(jsonPath("$.length()").value(3)) //判斷返回的json長度是否為3 .andReturn().getResponse().getContentAsString(); }
3.controller類:
@RestController public class UserController { @GetMapping("/user") public List<User> query(Pageable pageable){//用spring自帶的pageable物件來得到分頁資訊 System.out.println(pageable.getPageSize());// 15 System.out.println(pageable.getPageNumber()); // 3 System.out.println(pageable.getSort());//age: DESC List<User> users = new ArrayList<>(); /* 查詢操作 */ return users; } }
4.還可以傳入預設的Pageable屬性(使用@PageableDefault註解)
@RestController public class UserController { @GetMapping("/user") public List<User> query(@PageableDefault(page=2,size=17,sort="username,asc")Pageable pageable){//用spring自帶的pageable物件來得到分頁資訊 System.out.println(pageable.getPageSize());// 17 System.out.println(pageable.getPageNumber()); // 2 System.out.println(pageable.getSort());// username: DESC List<User> users = new ArrayList<>(); /* 查詢操作 */ return users; } }