类名SplitPageUtil:
import java.util.ArrayList;
import java.util.List;
public class SplitPageUtil {
private int page = 1; //当前页
private int pageNum = 0; //每页数据数
private int count = 0;//总数据数量
private int offset = 0;//从第几条数据开始查询
private int totalpage=0;//总页数
private int prePage=1;//上一页
private int nextPage=1;//下一页
private int lastPage=1;//末页
private int firstPage=1;//首页
private int step = 3;//分页页码的步长
private List arrayPage = null; //显示的分页的页码
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public int getTotalpage() {
return totalpage;
}
public void setTotalpage(int totalpage) {
this.totalpage = totalpage;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getStep() {
return step;
}
public void setStep(int step) {
this.step = step;
}
public List getArrayPage() {
return arrayPage;
}
public void setArrayPage(List arrayPage) {
this.arrayPage = arrayPage;
}
public SplitPageUtil(){
}
public SplitPageUtil(int count,int pageNum,int page){
this.splitpage(count, pageNum, page);
}
public void splitpage(int count,int pageNum,int page){
this.count =count;
this.pageNum=pageNum;
this.page=page;
this.totalpage = (this.count + this.pageNum - 1) / this.pageNum;
if (this.totalpage != 0) {
this.lastPage =this.totalpage;
}
if (this.page< 0 || this.page > this.totalpage) {
this.page = 1;
}
this.prePage = this.page - 1>0?this.page - 1:1;
this.nextPage = this.page + 1>this.totalpage?this.totalpage:this.page + 1;
this.offset =(this.page-1)*this.pageNum;
}
public void getShowPage(){
arrayPage = new ArrayList();
for(int i=page-step>0?page-step:1;i<page&&i>0;i++){
arrayPage.add(i);
}
for(int j=page;j<totalpage+1&&j<page+step;j++){
arrayPage.add(j);
}
}
}
BIZ对应改动的地方:
//创建DAO
OrderDao dao = new OrderDao();
Long count = dao.count(conn, sql);
if(count>0){
int num = Integer.parseInt(count+"");
SplitPageUtil sp = new SplitPageUtil( num , pageNum, page);
sp.setStep(3);
sp.getShowPage();
//dao执行查询
_l=dao.findbyAll(conn,sql,sp.getOffset(),sp.getPageNum());
map = new HashMap();
map.put("sp", sp);
map.put("data", _l);
}
DAO需要改动的地方:
public List findbyAll(Connection _conn, String strSql,int offset ,int limit)
{
Vector v = new Vector();
//定义 存放SQL语句的 StringBuffer
StringBuffer sbSQL = null;
//定义 PreparedStatement
PreparedStatement ps = null;
//定义数据库链接
Connection conn = null;
ResultSet rs=null;
try
{
conn = _conn;
sbSQL = new StringBuffer();
sbSQL.append("select * from Orderx where ");
sbSQL.append(strSql);
sbSQL.append(" limit "+offset+","+limit);
ps = conn.prepareStatement(sbSQL.toString());
//执行SQL
rs = ps.executeQuery();
while(rs.next()){
OrderVo vo1= new OrderVo();
vo1.setUserid(rs.getString("userid"));
vo1.setState(rs.getShort("state"));
vo1.setTotal(rs.getFloat("total"));
vo1.setNumbers(rs.getInt("numbers"));
vo1.setPrice(rs.getFloat("price"));
vo1.setName(rs.getString("name"));
vo1.setId(rs.getInt("id"));
v.addElement(vo1);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
//关闭 ps
if (ps != null)
{
ps.close();
ps = null;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return v;
}
public Long count(Connection _conn, String strSql)
{
Long num = 0l;
//定义 存放SQL语句的 StringBuffer
StringBuffer sbSQL = null;
//定义 PreparedStatement
PreparedStatement ps = null;
//定义数据库链接
Connection conn = null;
ResultSet rs=null;
try
{
conn = _conn;
sbSQL = new StringBuffer();
sbSQL.append("select count(*) as num from Orderx where ");
sbSQL.append(strSql);
ps = conn.prepareStatement(sbSQL.toString());
//执行SQL
rs = ps.executeQuery();
while(rs.next()){
num = rs.getLong("num");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
//关闭 ps
if (ps != null)
{
ps.close();
ps = null;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return num;
}