页面分页制作

分页的过程

1 首先 我们可以做一个装所有页面属性的类

public class PageHandle {
   
    private Integer pageNum;
   
    private Integer pageSize;
   
    private Integer totalRows;
   
    private Integer totalPage;
   
    private List<Dept> list;
   
   
    public PageHandle(Integer pageNum, Integer pageSize) {
    super();
    this.pageNum = pageNum;
    this.pageSize = pageSize;
    }
   
    public Integer getPageNum() {
    if (pageNum<1) {
    pageNum=1;
    }
    if (pageNum>getTotalPage()) {
    pageNum=getTotalPage();
    }
    return pageNum;
    }
   
    public void setPageNum(Integer pageNum) {
    this.pageNum = pageNum;
    }
   
    public Integer getPageSize() {
   
    return pageSize;
    }
   
    public void setPageSize(Integer pageSize) {
    this.pageSize = pageSize;
    }
   
    public Integer getTotalRows() {
    return totalRows;
    }
   
    public void setTotalRows(Integer totalRows) {
    this.totalRows = totalRows;
   
    }
   
    public Integer getTotalPage() {
    totalPage=(totalRows-1)/pageSize+1;
    return totalPage;
    }
   
    public void setTotalPage(Integer totalPage) {
    this.totalPage = totalPage;
    }
   
    public List<Dept> getList() {
    return list;
    }
   
    public void setList(List<Dept> list) {
    this.list = list;
    }
   
   
    }






    public class PageHandle2<T> {
   
    private Integer pageNum;
   
    private Integer pageSize;
   
    private Integer totalRows;
   
    private Integer totalPage;
   
   
    private List<T> list;
   
   
   
    public PageHandle2(Integer pageNum, Integer pageSize) {
    super();
    this.pageNum = pageNum;
    this.pageSize = pageSize;
    }
   
    public List<T> getList() {
    return list;
    }
   
    public void setList(List<T> list) {
    this.list = list;
    }
   
    public Integer getPageNum() {
    if(pageNum<1){
    pageNum=1;
    }
    if(pageNum>getTotalPage()){
    pageNum = getTotalPage();
    }
    return pageNum;
    }
   
    public void setPageNum(Integer pageNum) {
    this.pageNum = pageNum;
    }
   
    public Integer getPageSize() {
    return pageSize;
    }
   
    public void setPageSize(Integer pageSize) {
    this.pageSize = pageSize;
    }
   
    public Integer getTotalRows() {
    return totalRows;
    }
   
    public void setTotalRows(Integer totalRows) {
    this.totalRows = totalRows;
    }
   
    public Integer getTotalPage() {
    totalPage=(totalRows-1)/pageSize+1;
    return totalPage;
    }
   
    public void setTotalPage(Integer totalPage) {
    this.totalPage = totalPage;
    }
   
   
   
   
    }
2 我们在页面所需要的是数据均可以通过总条数来计算出来,每页显示的数是我们自己来定义,总页数是总条数/页面显示的数量 定义查询方法

public interface IDeptDao extends IBaseDao<Dept, Integer> {
   
    PageHandle fenye(PageHandle pageHandle);
   
    PageHandle2 paging(PageHandle2  pageHandle2);
    }




     @Repository
    public class DeptDaoImpl extends BaseDaoImpl<Dept, Integer> implements IDeptDao{
   
    @Override
    public PageHandle fenye(PageHandle pageHandle) {
   
    Session session = getSession();
   
    pageHandle.setTotalRows(Integer.parseInt(session.createQuery("select count(deptno) from Dept").uniqueResult().toString()));
   
    Query query = session.createQuery("from Dept");
   
    pageHandle.setList(query.setFirstResult((pageHandle.getPageNum()-1)*pageHandle.getPageSize()).setMaxResults(pageHandle.getPageSize()).list());
    return pageHandle;
    }
   
   
   
   
   
   
   
   
   
    @Override
    public PageHandle2 paging(PageHandle2 pageHandle2) {
             Session session =getSession();
             //获得总记录数
             Object uniqueResult = session.createQuery("select count(deptno) from Dept").uniqueResult();
               String string = uniqueResult.toString();
               int totalRows = Integer.parseInt(string);
               pageHandle2.setTotalRows(totalRows);
              
              // 查询分页
               Query query = session.createQuery("from Dept");
               query.setFirstResult((pageHandle2.getPageNum()-1)*pageHandle2.getPageSize());
               query.setMaxResults(pageHandle2.getPageSize());
               List list = query.list();
               pageHandle2.setList(list);
    return pageHandle2;
    }
   
   
    }
   
   


    public interface IDeptService {
   
     void save(Dept t);
   
    void delect(Integer id);
   
    void update(Dept t);
   
    Dept get(Integer id);
   
    List<Dept> getAll();
   
    PageHandle fenye(PageHandle pageHandle);
   
    PageHandle2 paging(PageHandle2 pageHandle2);
    }



    @Service
    public class DeptServiceImpl implements IDeptService {
        @Autowired
    private IDeptDao deptDao;
   
    @Override
    public void save(Dept t) {
    deptDao.save(t);
   
    }
   
    @Override
    public void delect(Integer id) {
   
    deptDao.delect(id);
    }
   
    @Override
    public void update(Dept t) {
    deptDao.update(t);
   
    }
   
    @Override
    public Dept get(Integer id) {
   
    return deptDao.get(id);
    }
   
    @Override
    public List<Dept> getAll() {
   
    return deptDao.getAll();
    }
   
    @Override
    public PageHandle fenye(PageHandle pageHandle) {
    return deptDao.fenye(pageHandle);
    }
   
    @Override
    public PageHandle2 paging(PageHandle2 pageHandle2) {
   
    return deptDao.paging(pageHandle2);
    }
   
   
   
    }



    @Controller
    @RequestMapping("/dept")
    public class DeptController {
    @Autowired
         private IDeptService depts;
        
        
    @RequestMapping("/list")
    public String list(Integer inputSize,Integer inputNum,Model model){
    int pageNum= inputNum == null? 1:inputNum ;
    int pageSize= inputSize == null? 5:inputNum ;
    PageHandle pageHandle =new PageHandle(pageNum,pageSize);
    PageHandle fenye = depts.fenye(pageHandle);
    model.addAttribute("pageHandle", fenye);
    return "index";
    }
   
   
   
      @RequestMapping("/list1")
      public String list1(Integer page, Integer size, Model model){
      int pageNum = page == null?1:page;
      int pageSize = size == null?6:size;
     
      PageHandle2<Dept> pageHandle2 = new PageHandle2<Dept>(pageNum, pageSize);
      PageHandle2 pag = depts.paging(pageHandle2);
     
      model.addAttribute("pageCount", pag);
     
       return "index";
      }
     
   
   
    }
以上的方法对应的有具体和泛型

猜你喜欢

转载自delete-sql.iteye.com/blog/2398365