package org.springside.modules.orm;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.StringUtils;
public class Page<T> {
// 公共变量 //
public static final String ASC = "asc";
public static final String DESC = "desc";
//分页参数 //
protected int pageNo = 1;
protected int pageSize = 1;
protected String orderBy = null;
protected String order = null;
protected boolean autoCount = true;
//返回结果 //
protected List<T> result = Collections.emptyList();
protected long totalCount = -1;
// 构造函数 //
public Page() {
}
public Page(final int pageSize) {
setPageSize(pageSize);
}
public Page(final int pageSize, final boolean autoCount) {
setPageSize(pageSize);
setAutoCount(autoCount);
}
// 查询参数访问函数 //
public int getPageNo() {
return pageNo;
}
public void setPageNo(final int pageNo) {
this.pageNo = pageNo;
if (pageNo < 1) {
this.pageNo = 1;
}
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(final int pageSize) {
this.pageSize = pageSize;
if (pageSize < 1) {
this.pageSize = 1;
}
}
public int getFirst() {
return ((pageNo - 1) * pageSize) + 1;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(final String orderBy) {
this.orderBy = orderBy;
}
public boolean isOrderBySetted() {
return (StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(order));
}
public String getOrder() {
return order;
}
public void setOrder(final String order) {
//检查order字符串的合法值
String[] orders = StringUtils.split(StringUtils.lowerCase(order), ',');
for (String orderStr : orders) {
if (!StringUtils.equals(DESC, orderStr) && !StringUtils.equals(ASC, orderStr))
throw new IllegalArgumentException("排序方向" + orderStr + "不是合法值");
}
this.order = StringUtils.lowerCase(order);
}
public boolean isAutoCount() {
return autoCount;
}
public void setAutoCount(final boolean autoCount) {
this.autoCount = autoCount;
}
// 访问查询结果函数 //
public List<T> getResult() {
return result;
}
public void setResult(final List<T> result) {
this.result = result;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(final long totalCount) {
this.totalCount = totalCount;
}
public long getTotalPages() {
if (totalCount < 0)
return -1;
long count = totalCount / pageSize;
if (totalCount % pageSize > 0) {
count++;
}
return count;
}
public boolean isHasNext() {
return (pageNo + 1 <= getTotalPages());
}
public int getNextPage() {
if (isHasNext())
return pageNo + 1;
else
return pageNo;
}
public boolean isHasPre() {
return (pageNo - 1 >= 1);
}
public int getPrePage() {
if (isHasPre())
return pageNo - 1;
else
return pageNo;
}
}
分享到:
相关推荐
《深入解析springside3:源码与jar剖析》 springside3是一个基于Spring框架的轻量级Java开发工具集,它旨在简化企业级应用的开发过程,提供了一套完整的构建工具、最佳实践和代码示例。在本文中,我们将深入探讨...
《SpringSide 3.3.4 源码解析与技术深度探讨》 SpringSide 是一个基于 Spring 的轻量级企业应用开发框架,它旨在简化 Spring 的使用,提供了一套最佳实践和快速入门模板。在本文中,我们将深入探讨 springside-...
1. `core`:核心模块,包含 SpringSide 的基础工具类和配置管理,如日志、国际化、属性文件处理等。 2. `modules`:模块化设计,包括示例模块、数据库访问模块、Web 模块等,便于开发者根据需求选择使用。 3. `tools...
《SpringSide 3.3.4 源码解析与应用》 SpringSide 是一个开源的Java企业级应用开发框架,旨在简化Spring框架的使用,提高开发效率。本篇文章将详细探讨SpringSide 3.3.4版本的源码结构、核心功能以及如何通过Maven...
SpringSide的Hibernate封装是针对Spring和Hibernate整合时的一种优化实践,旨在提高开发效率和代码的可维护性。它通过三层封装来实现对Hibernate操作的便捷和类型安全。 第一层是HibernateGenericDao,它是基于...
5. **工具类集**:springside3-core-3.0.4提供了一套丰富的工具类,涵盖了日志、反射、集合操作等多个方面,这些都是日常开发中的常用工具,理解其源码有助于提高代码质量。 6. **测试框架集成**:项目包含了对...
SpringSide 中的控制器类(Controller)遵循 Spring MVC 设计模式,通过注解(如 `@RequestMapping`)来定义请求映射,实现业务逻辑与视图的分离。 ### 六、Spring Data JPA Spring Data JPA 提供了对 JPA 的简化...
最后,文档提供了一些通用工具的介绍,比如Apache Commons、Google Guava、Spring以及SpringSide自身提供的工具类,还包括了数据序列化的功能,如XML与JSON的互相转换。 整体来看,SpringSide4参考手册是一份非常...
springside-core是整个项目的基石,它封装了springside的核心功能和组件,如项目初始化、配置管理、AOP支持等。这个模块是其他所有模块依赖的基础,也是开发者最需要理解和掌握的部分。 总结,springside.jar作为一...
《springside开发全面讲解》是一份旨在帮助开发者深入了解并掌握springside框架的详尽教程。springside是一款基于Spring框架的轻量级开发工具集,它为Java开发提供了简洁、高效的解决方案,尤其适合中大型项目的开发...
4. **下载Springside源码包**: - 下载并解压`springside-3.3.4-src.zip`。 - Sprinside 3.3.4源码包中包含了项目的示例代码、文档以及构建脚本。 5. **安装Maven Ant Tasks**: - 将`maven-ant-tasks-2.1.1.jar...
它封装了Spring框架的一些常用功能,如数据访问、事务管理、安全控制等,并提供了方便的工具类和配置模版。此外,它还包含了一些实用的模块,如日志管理、国际化支持、性能监控等,这些都极大地简化了开发者的工作。...
《SpringSide核心库4.1.0深度解析》 SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一...
《SpringSide 3.0:Java企业开发的高效框架指南》 SpringSide 3.0 是一个基于Spring框架的开源项目,旨在为Java开发者提供一套高效、简洁的开发规范和工具集。它不仅包含了Spring的核心模块,还整合了其他优秀的...
《SpringSide:全面解析与应用》 SpringSide项目是一个基于Java的开源软件开发框架,它以Spring Framework为核心,旨在提供一套简洁、规范的项目构建和开发实践。在深入理解SpringSide之前,我们首先需要了解Spring...
首先,"springside-core-4.1.0.GA"是核心模块的主JAR文件,其中封装了SpringSide的核心类和接口。这个JAR文件通常会被添加到项目的类路径中,使得项目能够直接使用SpringSide提供的服务。这些服务包括但不限于自动...
【Springside4 学习整理】 Springside4 是一个基于 JavaEE 平台的开源项目,它围绕 Spring Framework 构建,旨在提供实用的示例和最佳实践。Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和...
Hibernate,一个强大的对象关系映射(Object-Relational Mapping, ORM)框架,将复杂的SQL语句封装,使得开发者可以使用Java对象进行数据操作。在SpringSide中,Hibernate被用来处理数据库交互,通过定义对象实体和...
1. **Core**:这是SpringSide的核心模块,包含了一些通用的工具类和配置,如日志管理、代码生成器、属性文件管理等,为项目提供了基础服务。 2. **Demo**:示例模块,提供了各种应用场景的实例,帮助开发者快速理解...