Web Analytics

uni-page

⭐ 158 stars Russian by ethan-carter-g

🌐 Язык

Uni-Page Фреймворк пагинации

Uni-Page — это универсальный фреймворк пагинации на основе Java, который благодаря абстрактному дизайну предоставляет единый интерфейс для постраничного запроса к различным источникам данных. Фреймворк использует модульную архитектуру и в настоящее время интегрирует такие источники данных, как JDBC, Mybatis, MongoDB, Elasticsearch, а также предлагает гибкий механизм расширения.

Основной дизайн

Основной дизайн фреймворка строится вокруг четырех ключевых компонентов:

Цели проектирования

Сценарии применения

Основные модули

uni-page

Основная библиотека пагинации, предоставляющая базовые интерфейсы и абстрактные реализации для пагинации.

uni-page-jdbc

Модуль поддержки источников данных JDBC, реализующий пагинацию на основе JDBC.

uni-page-jdbc-mybatis

Модуль интеграции с MyBatis, обеспечивающий поддержку работы с фреймворком MyBatis.

uni-page-mongodb

Модуль поддержки источников данных MongoDB, реализующий пагинацию на основе MongoDB.

uni-page-elasticsearch

Модуль поддержки источников данных Elasticsearch, реализующий пагинацию на основе Elasticsearch.

spring-boot-starter-web-uni-page

Модуль поддержки пагинации в среде Spring MVC, обеспечивающий интеграцию со Spring MVC, так же просто, как написание обычного контроллера.

web-uni-page-test

Модуль тестирования пагинации в среде Spring Boot Web, предоставляющий интеграционные тесты функционала пагинации.

Быстрый старт, пример на uni-page-jdbc

Зависимость Maven


    com.github.ethancarter
    uni-page-jdbc
    1.9

Простой пример

public class PaginationTest {
   
    public void page() {
        PaginationStatementTemplate operations = new PaginationStatementTemplate();
        operations.addStatementExecutor(new Sql2oPaginationNamedParameterStatementExecutor(dataSource));
        
        // 1. 创建分页语句
        PaginationStatement statement = of(b -> b
                .sql("SELECT * FROM user WHERE username LIKE :username")
                .paramMap("username", "%admin%")
                .pageable(0, 10)
                .sort("id", Sort.Direction.DESC));
        
        // 2. 执行查询
        PageInformation information = operations.queryForInformation(statement);
        Page page = operations.queryForResultSet(statement, new JdbcBeanPropertyPaginationRowMapper<>(User.class));
    }

// User实体类 class User { private Long id; private String username; // getters and setters } }

Благодарности

В процессе разработки этого фреймворка я был сильно вдохновлен и поддержан сообществом с открытым исходным кодом. Благодарю тех, кто бескорыстно делился техническим опытом — именно ваша мудрость и вклад позволили появиться этому фреймворку. Особенно признателен выдающимся проектам с открытым исходным кодом за вдохновение в дизайне и реализации, эти ценные знания позволили мне двигаться вперед, стоя на плечах гигантов.

Благодарю всех технических специалистов, внесших вклад в сообщество open source!

🌟 Поддержите проект

Если этот проект оказался для вас полезным, буду благодарен за ⭐Star в правом верхнем углу!

--- Tranlated By Open Ai Tx | Last indexed: 2025-08-28 ---