zoukankan      html  css  js  c++  java
  • page分页

    首先封装一个分页类

    public class Page<T> {
        /**
         * 当前页号
         */
        private int pageNumber;
        /**
         * 总条数
         */
        private int totalCount;
        /**
         * 总页数
         */
        private int totalPage;
        /**
         * 每页显示的数量
         */
        private int pageSize;
        /**
         * 当前页的数据
         */
        private List<T> item;
        
        
        /**
         * 当前起始行号
         * @return
         */
        private int from;
        
        
        
        
        public Page(){}
        
        public Page(int pageSize,int totalCount,String pageNumber) {
            setPageSize(pageSize);
            setTotalCount(totalCount);
            setPageNumber(pageNumber);
        }
        
        
        
        
        
        
        
        
        
        public int getPageNumber() {
            return pageNumber;
        }
        public void setPageNumber(String pageNumber) {
            
            if(StringUtil.isNumber(pageNumber)){
                int tempNumber = Integer.parseInt(pageNumber);
                if(tempNumber < 1){
                    tempNumber = 1;
                }else if(tempNumber > getTotalPage()){
                    tempNumber = getTotalPage();
                }
                
                this.pageNumber = tempNumber;
                
            }else{
                this.pageNumber = 1;
            }
            
        }
        public int getTotalCount() {
            return totalCount;
        }
        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
            
            
            this.totalPage = totalCount / getPageSize();
            if(totalCount % getPageSize() != 0) {
                this.totalPage++;
            }
            
        }
        public int getTotalPage() {
            return totalPage;
        }
        /*public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }*/
        public int getPageSize() {
            return pageSize;
        }
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
        public List<T> getItem() {
            return item;
        }
        public void setItem(List<T> item) {
            this.item = item;
        }
        public int getFrom() {
            return (getPageNumber() - 1) * getPageSize();
        }
        public void setForm(int from) {
            this.from = from;
        }
        
        
        
        
        
        public List<Integer> getSlider(){
            
            int startPageNumber = getPageNumber() - 2;
            int endPageNumber = getPageNumber() + 2;
            
            if(startPageNumber <= 0){
                endPageNumber -= startPageNumber - 1;
                startPageNumber = 1;
            }
            
            if(endPageNumber > getTotalPage()){
                int temp = getTotalPage() - endPageNumber;
                endPageNumber = getTotalPage();
                startPageNumber = startPageNumber + temp;
                if(startPageNumber < 1){
                    startPageNumber = 1;
                }
            }
            
            
            List<Integer> result = new ArrayList<Integer>();
            
            for(int i = startPageNumber;i <= endPageNumber;i++){
                result.add(i);
            }
            
            
            
            
            
            return result;
        }
        
        
        
        
        
        
        
        
    }

    controller中

    Page<Active> page = new ActiveService().findByProjectid(projectid,pageNo);

    service中

    public Page<Active> findByProjectid(String projectid, String pageNo) {
            
            return activeDao.findAllByidAndPageNo(Long.valueOf(projectid),pageNo);
        }

    dao中

    public Page<Active> findAllByidAndPageNo(Long projectid, String pageNo) {
            
            
            String sql = "SELECT * FROM active,account WHERE active.accountid = account.id AND projectid = ? order by active.id desc limit ?,?";
            
            Page<Active> page = new Page<Active>(5, findActiveCountByprojectid(projectid), pageNo);
            //因为返回的page中的item里是没有account信息的,但是在home.jsp中需要显示account的头像和姓名,所以要重写这个rowmapper
            List<Active> list = db.queryForList(sql, new RowMapper<Active>(){
    
                @Override
                public Active mapRow(ResultSet rs) throws SQLException {
                    Active active = new Active();
                    active.setAccountid(rs.getLong("accountid"));
                    active.setContext(rs.getString("context"));
                    active.setCreatetime(rs.getTimestamp("createtime"));
                    active.setId(rs.getLong("id"));
                    active.setProjectid(rs.getLong("projectid"));
                    active.setType(rs.getString("type"));
                    
                    
                    Account account = new Account();
                    account.setId(rs.getLong("accountId"));
                    account.setUsername(rs.getString("username"));
                    account.setPic(rs.getString("pic"));
                    
                    active.setAccount(account);
                    return active;
                }
                
                
                
                
                
                
            }, projectid,page.getFrom(),page.getPageSize());
            
            
            
            page.setItem(list);
            
            
            
            
            
            return page;
        }
        private int findActiveCountByprojectid(Long projectid) {
            String sql = "select count(*) from active where projectid = ?";
            return db.queryForCount(sql, projectid).intValue();
        }
  • 相关阅读:
    mysql GRANT ALL PRIVILEGES 限制某个或所有客户端都可以连接至mysql
    MySql开启远程用户登录GRANTALLPRIVILEGESON*.*TO'root'@'%'I MySql开启远程用户登录GRANTALLPRIVILEGESON*.*TO'root'@'%'I
    php中 -> 和 => 和 :: 的用法 以及 self 和 $this 的用法
    mysql case when then else end 的用法
    C/C++ 程序的build过程
    Git 笔记
    English Snippets
    Ubuntu 使用笔记
    在CentOS上安装Sublime Text
    hihoCoder #1379 Emulator
  • 原文地址:https://www.cnblogs.com/itliucheng/p/4581449.html
Copyright © 2011-2022 走看看