Uni-Page – uniwersalny framework stronicowania
Uni-Page to uniwersalny framework do stronicowania oparty na języku Java, który dzięki abstrakcyjnemu projektowi zapewnia jednolity interfejs zapytań stronicowanych dla różnych źródeł danych. Framework posiada architekturę modułową i obecnie integruje takie źródła jak JDBC, Mybatis, MongoDB, Elasticsearch, oferując jednocześnie elastyczny mechanizm rozszerzania.
Kluczowe założenia projektowe
Rdzeń frameworka opiera się na czterech kluczowych komponentach:
- Instrukcja paginacji (PaginationStatement)
- Obsługuje definicję instrukcji paginacji w dowolnym języku
- Zapewnia jednolity interfejs parametrów paginacji
- Pozwala na definiowanie własnej logiki paginacji
- Egzekutor instrukcji paginacji (PaginationStatementExecutor)
- Odpowiada za wykonywanie instrukcji paginacji
- Zapewnia funkcję pobierania informacji o paginacji
- Rozszerzalny mechanizm egzekutora
- Zbiór wyników paginacji (PaginationResultSet)
- Jednolity interfejs zbioru wyników
- Obsługuje dostęp do danych według nazwy kolumny i indeksu
- Zapewnia funkcjonalność konwersji typów
- Projekt podobny do JDBC ResultSet
- Handler zbioru wyników (PaginationResultSetHandler)
- Obsługuje własne przekształcanie zbioru wyników
- Zapewnia funkcję mapowania obiektów
Cele projektowe
- Jednolitość
- Zapewnia jednolity interfejs paginacji
- Ukrywa różnice implementacji różnych źródeł danych
- Upraszcza sposób użycia paginacji
- Elastyczność
- Obsługuje definiowanie własnych instrukcji paginacji
- Pozwala na rozszerzanie egzekutora
- Zapewnia bogate metody obsługi zbiorów wyników
- Rozszerzalność
- Projekt modułowy
- Umożliwia szybkie podłączenie nowych źródeł danych
- Zapewnia mechanizm punktów rozszerzeń
- Łatwość użycia
- Prosty i intuicyjny interfejs API
- Zaawansowana konwersja typów
- Bogate wsparcie dla klas narzędziowych
Zastosowanie
- Projekty wymagające jednolitego zarządzania paginacją dla wielu źródeł danych
- Aplikacje korporacyjne wymagające wsparcia paginacji dla różnych źródeł danych
Moduły podstawowe
uni-page
Podstawowa biblioteka paginacji, zapewniająca podstawowe interfejsy i abstrakcyjne implementacje paginacji.uni-page-jdbc
Moduł wsparcia dla źródeł danych JDBC, oferujący implementację paginacji opartą na JDBC.uni-page-jdbc-mybatis
Moduł integracji z MyBatis, zapewniający wsparcie dla integracji z frameworkiem MyBatis.uni-page-mongodb
Moduł wsparcia dla źródeł danych MongoDB, oferujący implementację paginacji opartą na MongoDB.uni-page-elasticsearch
Moduł wsparcia dla źródeł danych Elasticsearch, oferujący implementację paginacji opartą na ES.spring-boot-starter-web-uni-page
Moduł wsparcia paginacji w środowisku Spring MVC, zapewniający integrację ze Spring MVC – tak łatwą jak pisanie zwykłego kontrolera.- Automatyczne wiązanie parametrów paginacji
- Automatyczna konwersja wyników paginacji
web-uni-page-test
Moduł testowy paginacji w środowisku Spring Boot Web, oferujący testy integracyjne funkcjonalności paginacji.Szybki start, na przykładzie uni-page-jdbc
Zależności Maven
com.github.ethancarter
uni-page-jdbc
1.9
Prosty przykład
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
}
}
Podziękowania
Podczas opracowywania tego frameworka czerpałem ogromną inspirację z społeczności open source. Dziękuję wszystkim ekspertom, którzy bezinteresownie dzielą się swoją wiedzą techniczną — to właśnie wasza mądrość i wkład pozwoliły powstać temu frameworkowi. Szczególne podziękowania należą się świetnym projektom open source, które dostarczyły inspiracji projektowych i pomysłów na realizację; te cenne doświadczenia pozwoliły mi iść dalej, stojąc na ramionach gigantów.
Dziękuję wszystkim specjalistom, którzy przyczyniają się do rozwoju społeczności open source!
🌟 Wsparcie projektu
Jeśli uważasz, że ten projekt jest dla Ciebie pomocny, zapraszam do kliknięcia ⭐Star w prawym górnym rogu, by mnie wesprzeć!--- Tranlated By Open Ai Tx | Last indexed: 2025-08-28 ---