1、将分页的相应信息放入一个对象中,包括分页返回值。
import java.io.Serializable;
public class Paginate implements Serializable {
private static final long serialVersionUID = 1L;
//总数
private long total;
//当前页数
private int currentPageNum = 1;
//分页后返回的list集合
private Object data;
//每页的数量
private int recordsPerPage = 10;
//能显示的页数数量
private int showTags = 5;
//分页的查询条件
private Object condition;
//下面两部分是从js中获取的
private int startNum;
private long pageTotal;
public long getPageTotal() {
return ((this.total + this.recordsPerPage - 1L) / this.recordsPerPage);
}
public void setPageTotal(long pageTotal) {
this.pageTotal = pageTotal;
}
public void setStartNum(int startNum) {
this.startNum = startNum;
}
public int getStartNum() {
return ((this.currentPageNum - 1) * this.recordsPerPage);
}
public long getTotal() {
return this.total;
}
public void setTotal(long total) {
this.total = total;
}
public int getCurrentPageNum() {
return this.currentPageNum;
}
public void setCurrentPageNum(int currentPageNum) {
this.currentPageNum = currentPageNum;
}
public Object getData() {
return this.data;
}
public void setData(Object data) {
this.data = data;
}
public int getRecordsPerPage() {
return this.recordsPerPage;
}
public void setRecordsPerPage(int recordsPerPage) {
this.recordsPerPage = recordsPerPage;
}
public int getShowTags() {
return this.showTags;
}
public void setShowTags(int showTags) {
this.showTags = showTags;
}
public Object getCondition() {
return this.condition;
}
public void setCondition(Object condition) {
this.condition = condition;
}
}
2、数据库中的处理方式mybatis(一下只是主要部分,其他详细配置请参考其他)。
<resultMap id="selectByNameResultMap" type="cn.ftiao.tm.model.Lecturer">
<id column="ID" property="id" />
<result column="LECTURER_NAME" property="lecturerName" />
</resultMap>
<select id="selectByName" resultMap="selectByNameResultMap" parameterType="java.lang.String">
select ID,LECTURER_NAME from LECTURER where DELETED_FLAG='N' and LECTURER_NAME like CONCAT('%',#{lecturerName},'%') limit 0,10
</select>
<select id="paginate" resultMap="BaseResultMap" parameterType="cn.ftiao.common.Paginate">
select ID,LECTURER_NAME,CP_NAME,PHONE,EMAIL,APPLY_STATUS,DELETED_FLAG from LECTURER
<include refid="paginateCondition" />
order by ID desc limit #{startNum}, #{recordsPerPage}
</select>
<select id="paginateByCount" resultType="java.lang.Long" parameterType="cn.ftiao.common.Paginate">
select count(1) from LECTURER
<include refid="paginateCondition" />
</select>
<sql id="paginateCondition">
<where>
DELETED_FLAG='N'
<if test="condition!=null">
<if test="condition.keyword != null">
and (LECTURER_NAME like CONCAT('%',#{condition.keyword},'%') or CP_NAME like CONCAT('%',#{condition.keyword},'%'))
</if>
</if>
</where>
</sql>
3、service中的业务处理(只贴出了方法,请挑主要部分)
@Override
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public Paginate paginate(Lecturer lecturer, Paginate paginate) {
if (paginate == null) { throw new IllegalArgumentException("paginate"); }
if (lecturer == null) { throw new IllegalArgumentException("lecturer"); }
LOG.debug(ToString.reflectionToString(paginate));
paginate.setCondition(lecturer);
long count = this.lecturerMapper.paginateByCount(paginate);
if (count > 0) {
paginate.setTotal(count);
List<Lecturer> lecturers = this.lecturerMapper.paginate(paginate);
paginate.setData(lecturers);
List<Long> ids = getIds(lecturers);
setLessonTotal(lecturers, this.getLessonTotal(ids));
setSyllabusTotal(lecturers, this.getSyllabusTotal(ids));
}
return paginate;
}
分享到:
相关推荐
虚拟内存的基本概念和请求分页处理方式 虚拟内存的基本概念: 虚拟内存是一种计算机存储管理技术,它允许一个作业分多次调入内存,而不是一次性全部装入内存。这种技术的出现是为了解决传统存储管理方式的缺陷,即...
根据输入参数,我们可以生成不同的SQL语句,以实现不同的分页处理方式。例如,我们可以根据排序字段名和排序类型生成不同的排序语句。 6. 查询条件处理 在GetRecordFromPage存储过程中,我们还可以处理查询条件。...
- 对于后端,可以使用Java(Spring Boot)、Python(Django或Flask)、Node.js(Express)等,它们都有各自的分页处理方式。 - 前端则可以使用JavaScript(Vanilla JS、React、Vue等),结合Ajax异步请求实现分页...
在.NET框架中,分页委托(Paging Delegate)是一种高效且灵活的数据分页处理方式,尤其在处理大量数据集时显得尤为重要。它允许我们在不一次性加载所有数据的情况下,仅加载当前需要显示的部分,从而提高应用程序的...
传统的分页处理方法通常涉及到SQL语句的编写和分页组件的开发,这种方式虽然可行但往往比较复杂且容易出错。为了简化这一过程,许多开发者开始寻找更高效的方法。 #### 二、Pager-taglib简介 **Pager-taglib**是一...
4. **支持多种数据库**:除了主流的关系型数据库,PageHelper还支持分布式数据库如HBase等,提供了一种统一的分页处理方式。 5. **易于使用**:只需简单地在MyBatis的配置文件中添加PageHelper的配置,并在Mapper...
高性能jdbc分页处理,使用PreparedStatement方式
本篇文章将深入探讨如何在VB中利用ListView控件实现数据分页处理。 首先,理解数据分页的基本概念。数据分页是将大量的数据分成若干小块(页),每次只加载和显示一页,而不是一次性加载所有数据。这种方式可以减少...
本话题将详细介绍在WebLogic Workshop 8.1中实现分页处理的三种方法。 一、基于JSP和JavaBean的分页 1. JSP页面:在JSP页面中,我们可以使用HTML表格或者JSP标签库(如TLD)来展示数据。通常,我们会有一个隐藏的...
在Java Web开发中,分页处理是一个非常常见的需求,它能有效地提高用户体验,尤其是在处理大量数据时。本主题主要探讨的是使用Java、Servlet以及JSP进行分页操作的方法和技术。以下将详细介绍这些技术及其背后的原理...
在本案例中,分页处理程序作为一个自定义标签,可以方便地嵌入到JSP页面中,以处理分页显示数据的需求。 分页通常涉及到以下几个关键部分: 1. **页面链接生成**:根据当前页码和总页数,生成可供用户点击的页面...
在网页开发中,分页处理是一项非常常见的功能,特别是在数据量较大的情况下,为了提高用户体验,我们需要将大量数据分块展示,而不是一次性加载所有内容。"关于分页处理--跳转到第N页"这个主题主要涉及到如何实现...
在SQL中,分页处理是处理海量数据时不可或缺的一个功能,尤其在网页展示或数据分析时,用户通常希望分批次查看结果,而不是一次性加载所有数据。本文将深入探讨SQL的分页处理方法及其对海量数据提取效率的影响。 ...
### 海量数据分页处理的关键知识点 在现代软件开发中,处理海量数据是一项关键技能,尤其是在企业级应用中,高效地对大数据进行分页处理是确保系统性能和用户满意度的重要环节。以下是从标题“海量数据如何做分页...
在提供的"分页page示例"中,你可能会找到实现这些分页方式的具体代码和示例,包括PHP处理逻辑、HTML模板和可能的JavaScript代码。通过学习和研究这些示例,你可以更好地理解和应用这些分页技术到自己的项目中。 总...
在现代Web开发中,分页和批量处理技术是优化用户界面性能、提升用户体验的重要手段。本文将深入探讨这些技术在Web应用中的实现方法与最佳实践。 ### 分页技术 分页技术主要用于处理大量数据时,避免一次性加载过多...
【Java 分页处理】 在Java Web开发中,分页是一种常见的功能,用于处理大量数据时让用户能够逐页浏览,提高用户体验。本篇文章将详细介绍如何利用Pager-taglib标签库实现Java分页,帮助开发者轻松实现这一功能。 *...
在这个特定的案例中,我们关注的是"C# 多种方式进行分页"。分页是Web开发中一个重要的功能,特别是在处理大量数据时,它可以提高用户体验,避免一次性加载过多的数据导致页面响应变慢。本示例代码提供了两种不同的...
在.NET开发环境中,分页是Web应用程序中一个非常常见的需求,尤其在处理大量数据时,为了提高用户体验和页面加载速度,通常会采用分页技术。ASP.NET,作为.NET框架的一部分,提供了多种实现分页的方法。本文将深入...