Разбиение на страницы часто полезно, когда у нас есть большой набор данных, и мы хотим представить его пользователю в виде небольших фрагментов. Кроме того, нам часто приходится сортировать эти данные по некоторым критериям при разбиении на страницы.
Установка
1) Клонируйте репозиторий отсюда НАЖМИТЕ здесь
2) Импортируйте проект на основе Maven в любую из ваших любимых IDE.
./mvnw spring-boot:run
Выход
Открыть в браузере
Доступ к базе данных H2.
http://localhost:8080/h2-console
Выход
– | получить | http://localhost:8080/student/search | Чтобы получить всех студентов в разбитом на страницы формате |
{“{“идентификатор”: 214, “имя”: “Атхарва”, “номер броска”: 32} | пост | http://localhost:8080/student | Чтобы добавить студентов в базу данных |
– | получить | http://localhost:8080/pagination?pageSize=5 | чтобы получить информацию о первых 5 студентах |
– | получить | http://localhost:8080/pagination?pageSize=5&pageNo=1 | Чтобы получить сведения о студенте по размеру страницы 5 и странице № 2 |
– | получить | http://localhost:8080/ разбивка на страницы? Размер страницы=5 и номер страницы=2 | Чтобы получить сведения о студенте по размеру страницы 5 и странице № 1 |
– | получить | http://localhost:8080/pagination?pageSize=5&pageNo=1&sortBy = идентификатор | Для сортировки сведений об учащемся по идентификатору |
– | получить | http://localhost:8080/pagination?pageSize=5&pageNo=1&sortBy = имя | Чтобы отсортировать учащихся по имени |
Использование
Использование
@Repository public interface SortingRepository extends PagingAndSortingRepository{ }
Использование
public PaginatedStudentResponse readStudent(Pageable pageable) { Pagestudents = studentRepository.findAll(pageable); return PaginatedStudentResponse.builder() .numberOfItems(students.getTotalElements()).numberOfPages(students.getTotalPages()) .studentList(students.getContent()) .build(); } public List getAllStudents(Integer pageNo, Integer pageSize, String sortBy) { Pageable paging = PageRequest.of(pageNo, pageSize, Sort.by(sortBy)); Page pageResult = studentRepository.findAll(paging); if(pageResult.hasContent()) { return pageResult.getContent(); } else { return new ArrayList (); } } public Student createStudent(Student student) { return studentRepository.save(student); }
Использование
@GetMapping public ResponseEntity> getAllStudents( @RequestParam(defaultValue = "0") Integer pageNo, @RequestParam(defaultValue = "10") Integer pageSize, @RequestParam(defaultValue = "id") String sortBy) { List
list = service.getAllStudents(pageNo, pageSize, sortBy); return new ResponseEntity >(list, new HttpHeaders(),HttpStatus.OK); }
Использование
@Autowired private StudentService studentService; @GetMapping("/student/search") public ResponseEntityreadStudent(Pageable pageable) { return ResponseEntity.ok(studentService.readStudent(pageable)); } @PostMapping("/student") public ResponseEntity createProduct(@RequestBody Student student){ return ResponseEntity.ok().body(this.studentService.createStudent(student)); }
Конфигурация
Конфигурация
spring.jpa.show-sql = true # Enabling H2 Console spring.datasource.url=jdbc:h2:mem:testdb spring.jpa.defer-datasource-initialization=true spring.h2.console.enabled=true # Enable Web Access spring.h2.console.settings.web-allow-others=true
Кредиты
Кредиты
Оригинал: “https://dev.to/atharvasiddhabhatti/spring-boot-pagination-and-sorting-project-2i8d”