zoukankan      html  css  js  c++  java
  • 7、客户模块-客户模块之分页后台代码的编写(分页)

    /crm/src/com/louis/domain/PageBean.java

    package com.louis.domain;
    
    import java.util.List;
    
    /**
     * 分页的JavaBean
     * @author Administrator
     */
    public class PageBean<T> {
        
        // 当前页
        private int pageCode;
        
        // 总页数
        // private int totalPage;
        
        // 总记录数
        private int totalCount;
        // 每页显示的记录条数
        private int pageSize;
        // 每页显示的数据
        private List<T> beanList;
        
        public int getPageCode() {
            return pageCode;
        }
        public void setPageCode(int pageCode) {
            this.pageCode = pageCode;
        }
        
        /**
         * 调用getTotalPage() 获取到总页数
         * JavaBean的属性规定:totalPage是JavaBean是属性 ${pageBean.totalPage}
         * @return
         */
        public int getTotalPage() {
            // 计算
            int totalPage = totalCount / pageSize;
            // 说明整除
            if(totalCount % pageSize == 0){
                return totalPage;
            }else{
                return totalPage + 1;
            }
        }
        
        /*public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }*/
        
        public int getTotalCount() {
            return totalCount;
        }
        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
        }
        public int getPageSize() {
            return pageSize;
        }
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
        public List<T> getBeanList() {
            return beanList;
        }
        public void setBeanList(List<T> beanList) {
            this.beanList = beanList;
        }
    }

     /crm/WebContent/menu.jsp

    /crm/src/com/louis/web/action/CustomerAction.java

    // 属性驱动的方式
        // 当前页,默认值就是1
        private Integer pageCode = 1;
    
        public void setPageCode(Integer pageCode) {
            if (pageCode == null) {
                pageCode = 1;
            }
            this.pageCode = pageCode;
        }
    
        // 每页显示的数据的条数
        private Integer pageSize = 2;
    
        public void setPageSize(Integer pageSize) {
            this.pageSize = pageSize;
        }
        /**
         * 分页的查询方法
         * @return
         */
        public String findByPage(){
            // 调用service业务层
            DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
            // 查询
            PageBean<Customer> page = customerService.findByPage(pageCode,pageSize,criteria);
            // 压栈
            ValueStack vs = ActionContext.getContext().getValueStack();
            // 栈顶是map<"page",page对象>
            vs.set("page", page);
            return "page";
        }

    /crm/src/com/louis/service/CustomerServiceImpl.java

    /**
         * 分页查询
         */
        public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
            return customerDao.findByPage(pageCode,pageSize,criteria);
        }

    /crm/src/com/louis/dao/CustomerDaoImpl.java

        /**
         * 分页的查询
         */
        public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
            PageBean<Customer> page = new PageBean<Customer>();
            page.setPageCode(pageCode);
            page.setPageSize(pageSize);
            
            // 先查询总记录数    select count(*)
            criteria.setProjection(Projections.rowCount());
            List<Number> list = (List<Number>) this.getHibernateTemplate().findByCriteria(criteria);
            if(list != null && list.size() > 0){
                int totalCount = list.get(0).intValue();
                // 总的记录数
                page.setTotalCount(totalCount);
            }
            
            // 强调:把select count(*) 先清空,变成  select * ...
            criteria.setProjection(null);
            
            // 提供分页的查询
            List<Customer> beanList = (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
            // 分页查询数据,每页显示的数据  使用limit
            page.setBeanList(beanList);
            
            return page;
        }
        

    问题

    看分页代码PageBean

    属性驱动是什么意思

    criteria

  • 相关阅读:
    从 Qt 的 delete 说开来
    Qt信号槽的一些事
    Qt 线程基础(QThread、QtConcurrent等)
    QThread使用——关于run和movetoThread的区别
    重点:怎样正确的使用QThread类(注:包括推荐使用QThread线程的新方法QObject::moveToThread)
    重要:C/C++变量的自动初始化
    C++中基类的析构函数为什么要用virtual虚析构函数
    如何打印Qt中的枚举所对应的字符串
    用route命令解决多出口的问题
    C/C++预处理指令
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7709249.html
Copyright © 2011-2022 走看看