Web Analytics

uni-page

⭐ 158 stars Simplified Chinese 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 数据源支持模块,提供基于 ES 的分页实现。

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 } }

致谢

在开发这个框架的过程中,我深受开源社区的影响和启发。感谢那些无私分享技术经验的大佬们,是你们的智慧和贡献让这个框架得以诞生。特别感谢那些优秀开源项目带来的设计灵感和实现思路,这些宝贵的经验让我能够站在巨人的肩膀上继续前行。

感谢所有为开源社区做出贡献的技术大佬们!

🌟 支持项目

如果你觉得这个项目对你有帮助,欢迎点击右上角的 ⭐Star 支持我!

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