pagetool.java

来自「hibernate应用测试,初学hibernate 的会员可以看看.」· Java 代码 · 共 86 行

JAVA
86
字号
package com.tool.pagetool;

import java.util.List;
import java.sql.SQLException;

public class PageTool {
    private PageDAO DAO;
    private int rowNum;
    public PageTool(){};
    public PageTool(PageDAO DAO){
        this.DAO = DAO;
//        try {
//            this.rowNum = DAO.selectCount();
//        } catch (SQLException ex) {
//            ex.printStackTrace();
//        }
    }

    //普通的分页
    public Page createPage(int currentPage, int size) throws SQLException {
        Page page = new Page();
        page.setCurrentPage(currentPage);
        page.setSize(size);
        page.setBegin(this.getPageBegin(currentPage, size));
        page.setEnd(this.getPageEnd(currentPage, size));
        try {
            page.setPage(DAO.selectForPage(page));
            page.setRowNum(DAO.selectCount());
            page.setPageCount(this.getPageCount(page.getRowNum(), size));
            page.setNextPage(page.getPageCount() <= currentPage ?
                             page.getPageCount() : currentPage + 1);
            page.setPreviertPage(currentPage <= 1 ? 1 : currentPage - 1);
        } catch (SQLException e) {
            e.printStackTrace();
            throw e;
        } finally {
            DAO.rollback();
        }

        return page;
    }

    //支持动态查询的分页
    //queryStr 为sql查询语句的where部分
    public Page createPage(int currentPage, int size,String queryStr) throws SQLException {
        Page page = new Page();
        page.setCurrentPage(currentPage);
        page.setSize(size);
        page.setQueryStr(queryStr);
        page.setBegin(this.getPageBegin(currentPage, size));
        page.setEnd(this.getPageEnd(currentPage, size));
        try {
            page.setPage(DAO.selectForPage(page));
            page.setRowNum(DAO.selectCount(page));
            page.setPageCount(this.getPageCount(page.getRowNum(), size));
            page.setNextPage(page.getPageCount() <= currentPage ?
                             page.getPageCount() : currentPage + 1);
            page.setPreviertPage(currentPage <= 1 ? 1 : currentPage - 1);
        } catch (SQLException e) {
            e.printStackTrace();
            throw e;
        } finally {
            DAO.rollback();
        }
        return page;
    }

    public int getPageEnd(int currentPage,int size){
        int pageEnd = currentPage*size;
        return pageEnd;

    }
    private int getPageBegin(int currentPage,int size){
        int pageBegin = 1;
        if(currentPage>0)
            pageBegin=(currentPage-1)*size;
        return pageBegin;
    }
    private int getPageCount(int rowNum,int size){
        int pageCount = 0;
        if(rowNum%size==0) pageCount = rowNum/size;
        else pageCount = rowNum/size+1;
        return pageCount;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?