目录
前言:通用分页的原意义:能够简化分页相关功能的开发
目的:极大优化代码
分页代码比较:
原有的分页代码:
1.存在大量重复分页条的HTML代码
2.将上一次的查询条件带到下一次,隐藏的from表单HTML
3.后台有大量的代码是重复的1.按原始方式写一个查询
存在问题:①有重复代码
②分页参数不清晰
解决方案:①baseDao ②pagebean2.BaseDao
存在问题:
不同人调用,处理resultset方式是不一样的解决方案:通过回调函数解决 callback
3.callback
4.通用分页
原始SQL:调用方拼装好的sql
分页sql:页面要展示数据的sql,第N也的数据
符合条件的总记录数sql:时为了拿到总录数,计算总页数
一,PageBean
首先把该有的文件放到util包里面
<如图所示>
分析:DBAccess为数据库辅助类
EncodingFiter为中文乱码处理
PageBean为分页的工具类
StringUtils为判空
1.为什么封装
方便使用
2.封装的优点
精简代码
《代码演示》
package com.dengxiyan.util;
/**
* 分页工具类
*
*/
public class PageBean {
private int page = 1;// 页码
private int rows = 10;// 页大小
private int total = 0;// 总记录数
private boolean pagination = true;// 是否分页
public PageBean() {
super();
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public void setTotal(String total) {
this.total = Integer.parseInt(total);
}
public boolean isPagination() {
return pagination;
}
public void setPagination(boolean pagination) {
this.pagination = pagination;
}
/**
* 获得起始记录的下标
*
* @return
*/
public int getStartIndex() {
return (this.page - 1) * this.rows;
}
@Override
public String toString() {
return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination + "]";
}
}
二,反射通用后台查询方法
《代码演示》
BaseDao反射类
package com.dengxiyan.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import