Рубрики
Без рубрики

Весенняя загрузка – Проект разбиения на страницы и сортировки

Разбиение на страницы часто полезно, когда у нас есть большой набор данных, и мы хотим представить его пользователю… С тегами spring boot, java, новички, программирование.

Разбиение на страницы часто полезно, когда у нас есть большой набор данных, и мы хотим представить его пользователю в виде небольших фрагментов. Кроме того, нам часто приходится сортировать эти данные по некоторым критериям при разбиении на страницы.

Установка

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) {
        Page students = 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 ResponseEntity readStudent(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”