1、分页类:
public class Page {
/**
* 一行显示的最大记录数
*/
public static int MAX_ROW = 15;
/**
* 当前开始位置
*/
private int index;
/**
* 总页数
*/
private int page_num;
/**
* 查询的结果集大小
*/
private int total;
/**
* 返回链接
*/
private String url;
public Page() {
index = 0;
page_num = 1;
total = 0;
}
public int getTotal() {
return total;
}
public int getIndex() {
return index;
}
public int getPageNum() {
return page_num;
}
public void setTotal(int num) {
total = num;
if (total % MAX_ROW == 0) {
page_num = total / MAX_ROW;
}
else {
page_num = total / MAX_ROW + 1;
}
}
/**
* 在文本中插入页面标号为num的标记
*/
private void insertTag(StringBuffer text, int num) {
int temp = index / MAX_ROW;
if (num == temp) {
text.append(num + 1).append(" ");
}
else {
text.append("<a href=" + url + "&start_index=");
text.append(num * MAX_ROW).append(">").append(num + 1).append("</a> ");
}
}
/**
* 在文本中插入位置为起始位置为num,页面标号为str的标记
* @param text
* @param num 起始位置
* @param str 页面编号
*/
private void insertTag(StringBuffer text, int num, String str) {
text.append("<a href=" + url + "&start_index=");
text.append(num).append(">").append(str).append("</a> ");
}
public String getFooter() {
if (total <= MAX_ROW) {
return "";
}
StringBuffer str = new StringBuffer("分页:");
if (page_num <= MAX_ROW) {
for (int i = 0; i < page_num; i++) {
insertTag(str, i);
}
if (index + MAX_ROW < total) {
insertTag(str, index + MAX_ROW, "下一页");
}
else {
str.append("下一页");
}
return str.toString();
}
else {
int unit = MAX_ROW * MAX_ROW;
if (index < unit) {
int i;
for (i = 0; i < MAX_ROW; i++) {
insertTag(str, i);
}
String tt = "下" + MAX_ROW + "页";
insertTag(str, i * MAX_ROW, tt);
return str.toString();
}
else { //处理在中间或最后10页的问题
//page表示页;section表示多个页组成的面
//当前页面所在的页号。
int currentPage = index / MAX_ROW;
//当前页所在的面
int currentSection = currentPage / MAX_ROW + 1;
//上一面的开始页
int lastPage = (currentSection - 1) * MAX_ROW - 1;
//上一面的开始页的开始项的编号
int lastPageRow = lastPage * MAX_ROW;
//下一面的开始页编号
int nextPage = currentSection * MAX_ROW;
//下一面的开始页的开始项的编号
int nextPageRow = nextPage * MAX_ROW;
String tt = "上" + MAX_ROW + "页";
insertTag(str, lastPageRow, tt);
//如果还有下一面
if (nextPageRow <= total - 1) {
for (int i = 0; i < MAX_ROW; i++) {
insertTag(str, i + lastPage + 1);
}
tt = "下" + MAX_ROW + "页";
insertTag(str, nextPageRow, tt);
}
else { //如果没有下一面
//当前面的页面总数
int lengthOfPage = total - (lastPage + 1) * MAX_ROW;
lengthOfPage = lengthOfPage / MAX_ROW + 1;
for (int i = 0; i < lengthOfPage; i++) {
insertTag(str, i + 1 + lastPage);
}
}
return str.toString();
}
}
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public void setIndex(int index) {
this.index = index;
}
}
//未完待续..........................................
分享到:
相关推荐
java实现国密算法gm-java-main.zip
OKEX工具类jar 20190529 okex-java-sdk-api.jar OKEX工具类jar 20190529 okex-java-sdk-api.jar
本篇文章将详细探讨Java中的分页工具类及其核心实现原理。 首先,我们要理解什么是分页。分页是一种将大量数据分割成若干小部分(页)来展示的技术,每一页包含一定数量的数据,用户可以通过翻页来查看更多的记录。...
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
java图片处理工具类JAR包 java-image-scalingjar
而`java-property-utils-1.9.jar` 提供了一些用于处理Java属性文件的工具类,这些工具在配置CORS过滤器时可能会用到,例如读取配置文件中的CORS策略。 在配置CORS过滤器时,首先需要将这两个库添加到项目的类路径中...
稀缺工具类jar包。主要用于modbus通讯主从站使用。相较于modbus4j,该jar包再网上比较难找到,需要的可以下载使用!既可以配置主站,也可以配置从站,支持TCP和RTU.该工具包适用于eclipse软件,直接再lib中导入即可...
Java分页工具类是开发中常见的一种实用工具,主要用于处理大量数据时的分页显示,以提高用户体验并减轻服务器压力。在Java世界里,我们通常会遇到如MyBatis、Hibernate等ORM框架,它们虽然提供了分页功能,但在某些...
JD-GUI是使用C++开发的一款Java反编译工具,它是一个独立图形界面的Java源代码“.class”文件反编译工具。 JD-GUI是使用C++开发的一款Java反编译工具,它是一个独立图形界面的Java源代码“.class”文件反编译工具。
2. 应用程序层面:在Java中,可以自定义一个分页工具类,包含如分页参数(当前页码、每页大小)、数据获取方法(根据页码和每页大小从数据库获取数据)以及分页导航信息(如上一页、下一页、总页数等)。 3. 设计...
java 工具类 lang3 jar包 StringUtils ArrayUtils SystemUtils
java生成验证码的工具类,这个现在有依赖可以直接引入调用,但这个工具类没有引入依赖,大家也容易看懂代码,理解其含义。也可直接去工具类中调整生成验证码的宽度、高度、颜色、背景颜色、生成的随机数数量、干扰线...
本例中,我们讨论的是一个基于Java和MySQL的分页工具类,用于处理数据库查询的分页操作。 在MySQL中,`LIMIT` 子句常用来实现分页,其基本语法格式为 `LIMIT [offset],rows`。`offset` 表示从结果集的第几个元素...
这将生成Java源代码,包括protobuf消息类和服务存根。 3. 编译生成的Java代码,并在你的应用中引入它们。在服务端,实现服务接口并启动gRPC服务器;在客户端,使用服务存根来调用远程方法。 总的来说,`protoc`和`...
Java反编译工具JD-GUI是一款非常实用的软件,它专为开发者设计,用来查看Java字节码(.class文件)对应的源代码。在开发过程中,我们可能遇到没有源码的第三方库,或者想要理解已编译的Java类是如何工作的,这时JD-...
综上所述,Echarts-java资源工具类是一个帮助Java开发者更方便地生成和使用Echarts图表的工具,它结合了Echarts的JavaScript库和Java的封装库,实现了前后端的有效协同,提升了数据可视化的开发效率。通过理解和运用...
标题中的“Pager(通过的分页工具类)”显然指的是一个用于实现分页功能的Java类。在这个类中,开发者通常会封装分页操作的相关逻辑,以便在各种场景下复用。现在我们来详细探讨一下分页的基本概念、设计原则以及...
jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...
"标签"中提到的"mac反编译工具"和"class java"进一步强调了JD-GUI主要用于处理Mac平台上的Java类文件。.class文件是Java编译器生成的二进制文件,包含已编译的Java代码。通过反编译,开发者可以查看这些二进制文件...
6. **多线程**: Java支持并发编程,第六章可能讨论线程的创建、同步机制(如synchronized关键字、wait()、notify()方法)以及并发工具类如ExecutorService。 7. **网络编程**: 第七章可能会介绍Socket编程,包括TCP...