Web Analytics

uni-page

⭐ 158 stars Traditional 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 ---