zoukankan      html  css  js  c++  java
  • java分页实现

    首先是dataobject,项目是用的是SpringMVC
    public class MbChannelExtensionDO  {
        private static final long serialVersionUID = 741231858441822688L;
    
        //========== properties ==========
    
    	/**
    	 * This property corresponds to db column <tt>ID</tt>.
    	 */
    	private String id;
    
    	/**
    	 * This property corresponds to db column <tt>BANK_NAME</tt>.
    	 */
    	private String bankName;
    
    	/**
    	 * This property corresponds to db column <tt>PRODUCT_TYPE</tt>.
    	 */
    	private String productType;
    
    	/**
    	 * This property corresponds to db column <tt>EXCHANGE_TYPE</tt>.
    	 */
    	private String exchangeType;
    
    	/**
    	 * This property corresponds to db column <tt>SIGN_VERIFY_ELE</tt>.
    	 */
    	private String signVerifyEle;
    
    	/**
    	 * This property corresponds to db column <tt>CHANNEL_ID</tt>.
    	 */
    	private String channelId;
    
    	/**
    	 * This property corresponds to db column <tt>GMT_CREATE</tt>.
    	 */
    	private Date gmtCreate;
    
    	/**
    	 * This property corresponds to db column <tt>CREATOR</tt>.
    	 */
    	private String creator;
    
    	/**
    	 * This property corresponds to db column <tt>GMT_MODIFIED</tt>.
    	 */
    	private Date gmtModified;
    
    	/**
    	 * This property corresponds to db column <tt>UPDATOR</tt>.
    	 */
    	private String updator;
    
    	/**
    	 * This property corresponds to db column <tt>STATUS</tt>.
    	 */
    	private String status;
    
        //========== getters and setters ==========
    
        /**
         * Getter method for property <tt>id</tt>.
         *
         * @return property value of id
         */
    	public String getId() {
    		return id;
    	}
    	
    	/**
    	 * Setter method for property <tt>id</tt>.
    	 * 
    	 * @param id value to be assigned to property id
         */
    	public void setId(String id) {
    		this.id = id;
    	}
    
        /**
         * Getter method for property <tt>BANK_NAME</tt>.
         *
         * @return property value of bankName
         */
    	public String getBankName() {
    		return bankName;
    	}
    	
    	/**
    	 * Setter method for property <tt>BANK_NAME</tt>.
    	 * 
    	 * @param bankName value to be assigned to property bankName
         */
    	public void setBankName(String bankName) {
    		this.bankName = bankName;
    	}
    
        /**
         * Getter method for property <tt>PRODUCT_TYPE</tt>.
         *
         * @return property value of productTYPE
         */
    	public String getProductType() {
    		return productType;
    	}
    	
    	/**
    	 * Setter method for property <tt>PRODUCT_TYPE</tt>.
    	 * 
    	 * @param productType value to be assigned to property productType
         */
    	public void setProductType(String productType) {
    		this.productType = productType;
    	}
    
    	/**
    	 * Getter method for property <tt>SIGN_VERIFY_ELE</tt>.
    	 *
    	 * @return property value of signVerifyEle
    	 */
    	public String getSignVerifyEle() {
    		return signVerifyEle;
    	}
    
    	/**
    	 * Setter method for property <tt>SIGN_VERIFY_ELE</tt>.
    	 *
    	 * @param signVerifyEle value to be assigned to property signVerifyEle
    	 */
    	public void setSignVerifyEle(String signVerifyEle) {
    		this.signVerifyEle = signVerifyEle;
    	}
    
        /**
         * Getter method for property <tt>EXCHANGE_TYPE</tt>.
         *
         * @return property value of signVerifyEle
         */
        public String getExchangeType() {
            return exchangeType;
        }
    
        /**
         * Setter method for property <tt>EXCHANGE_TYPE</tt>.
         *
         * @param exchangeType value to be assigned to property exchangeType
         */
        public void setExchangeType(String exchangeType ) { this.exchangeType = exchangeType;}
        /**
         * Getter method for property <tt>channelId</tt>.
         *
         * @return property value of channelId
         */
    	public String getChannelId() {
    		return channelId;
    	}
    	
    	/**
    	 * Setter method for property <tt>channelId</tt>.
    	 * 
    	 * @param channelId value to be assigned to property channelId
         */
    	public void setChannelId(String channelId) {
    		this.channelId = channelId;
    	}
    
        /**
         * Getter method for property <tt>gmtCreate</tt>.
         *
         * @return property value of gmtCreate
         */
    	public Date getGmtCreate() {
    		return gmtCreate;
    	}
    	
    	/**
    	 * Setter method for property <tt>gmtCreate</tt>.
    	 * 
    	 * @param gmtCreate value to be assigned to property gmtCreate
         */
    	public void setGmtCreate(Date gmtCreate) {
    		this.gmtCreate = gmtCreate;
    	}
    
        /**
         * Getter method for property <tt>creator</tt>.
         *
         * @return property value of creator
         */
    	public String getCreator() {
    		return creator;
    	}
    	
    	/**
    	 * Setter method for property <tt>creator</tt>.
    	 * 
    	 * @param creator value to be assigned to property creator
         */
    	public void setCreator(String creator) {
    		this.creator = creator;
    	}
    
        /**
         * Getter method for property <tt>gmtModified</tt>.
         *
         * @return property value of gmtModified
         */
    	public Date getGmtModified() {
    		return gmtModified;
    	}
    	
    	/**
    	 * Setter method for property <tt>gmtModified</tt>.
    	 * 
    	 * @param gmtModified value to be assigned to property gmtModified
         */
    	public void setGmtModified(Date gmtModified) {
    		this.gmtModified = gmtModified;
    	}
    
        /**
         * Getter method for property <tt>updator</tt>.
         *
         * @return property value of updator
         */
    	public String getUpdator() {
    		return updator;
    	}
    	
    	/**
    	 * Setter method for property <tt>updator</tt>.
    	 * 
    	 * @param updator value to be assigned to property updator
         */
    	public void setUpdator(String updator) {
    		this.updator = updator;
    	}
    
        /**
         * Getter method for property <tt>status</tt>.
         *
         * @return property value of status
         */
    	public String getStatus() {
    		return status;
    	}
    	
    	/**
    	 * Setter method for property <tt>status</tt>.
    	 * 
    	 * @param status value to be assigned to property status
         */
    	public void setStatus(String status) {
    		this.status = status;
    	}


    接着是使用分页的Page类

    public class PageDO {
        /**
         * 总条数
         */
        private int totalNumber;
        /**
         * 当前第几页
         */
        private int currentPage;
        /**
         * 总页数
         */
        private int totalPage;
        /**
         * 每页显示条数
         */
        private int pageNumber = 10;
    
        /**
         * 依据当前对象中属性值计算并设置相关属性值
         */
        public void count() {
            // 计算总页数
            int totalPageTemp = this.totalNumber / this.pageNumber;
            int plus = (this.totalNumber % this.pageNumber) == 0 ?

    0 : 1; totalPageTemp = totalPageTemp + plus; if(totalPageTemp <= 0) { totalPageTemp = 1; } this.totalPage = totalPageTemp; // 设置当前页数 // 总页数小于当前页数,应将当前页数设置为总页数 if(this.totalPage < this.currentPage) { this.currentPage = this.totalPage; } // 当前页数小于1设置为1 if(this.currentPage < 1) { this.currentPage = 1; } } public int getTotalNumber() { return totalNumber; } public void setTotalNumber(int totalNumber) { this.totalNumber = totalNumber; this.count(); } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getPageNumber() { return pageNumber; } public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; this.count(); } }


    DAO层实现分页的两个方法

     /**
         *  select  <tt>MbChannelExtensionDO</tt> object by page to DB table <tt>MB_CHANNEL_EXTENSION</tt>, return primary key
         *
         *  <p>
         *  The sql statement for this operation is <br>
         *  <tt>select * from MB_CHANNEL_EXTENSION where id not in(select id from MB_CHANNEL_EXTENSION
         *  where rownum<=(PAGESIZE*(CURRENTPAGE-1))) and rownum<=PAGESIZE order by id; </tt>
         *
         *	@param page,mbChannelExtension
         *	@return List<MbChannelExtensionDO>
         *	@throws DataAccessException
         */
        @Override
        public List<MbChannelExtensionDO> getMbChannelExtensionByPage(MbChannelExtensionDO mbChannelExtensionDO,PageDO page) throws DataAccessException {
            if (page == null) {
                throw new IllegalArgumentException("Can't select by a null page.");
            }
            Map map=new HashMap();
            map.put("page",page);
            map.put("mbChannelExtension",mbChannelExtensionDO);
            return getSqlMapClientTemplate().queryForList("MS-MB-CHANNEL-EXTENSION-SELECT-BY-PAGE", map);
        }
    
        @Override
        public int countOfMbChannelExtension(MbChannelExtensionDO mbChannelExtensionDO ) throws DataAccessException {
    
            int count=(Integer)getSqlMapClientTemplate().queryForObject("MS-MB-CHANNEL-EXTENSION-COUNT",mbChannelExtensionDO);
            return count;
        }


    下面是mybatis的mapping文件 
    </pre><pre name="code" class="html" style="font-size: 11.8181819915771px;"><select id="MS-MB-CHANNEL-EXTENSION-SELECT-BY-PAGE" parameterClass="java.util.Map" resultMap="RM-MB-CHANNEL-EXTENSION">
            select
                *
            from
                MB_CHANNEL_EXTENSION
            where
                id
            not in
            (
                select
                    id
                from
                    MB_CHANNEL_EXTENSION
                where 1=1
    
                    AND
                    rownum
                      <![CDATA[ <=]]>
                    (
                        #page.pageNumber#*(#page.currentPage#-1)
                    )
            )
            <dynamic>
                <isNotEmpty prepend="AND" property="mbChannelExtension.bankName">
                    BANK_NAME=#mbChannelExtension.bankName#
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="mbChannelExtension.productType">
                    PRODUCT_TYPE=#mbChannelExtension.productType#
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="mbChannelExtension.exchangeType">
                    EXCHANGE_TYPE=#mbChannelExtension.exchangeType#
                </isNotEmpty>
            </dynamic>
            and rownum
            <![CDATA[ <=]]> #page.pageNumber#
            order by
                id
        </select>
    
    
        <select id="MS-MB-CHANNEL-EXTENSION-COUNT" resultClass="java.lang.Integer">
            select count(ID)
            from
            MB_CHANNEL_EXTENSION
            where 1=1
            <dynamic>
                <isNotEmpty prepend="AND" property="bankName">
                    BANK_NAME=#bankName#
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="productType">
                    PRODUCT_TYPE=#productType#
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="exchangeType">
                    EXCHANGE_TYPE=#exchangeType#
                </isNotEmpty>
            </dynamic>
    <p>    </select></p><div>
    </div>

    下面是controller层

      @RequestMapping("/channlExtension")
        public String selectCustomer(MbChannelExtensionDO customer,PageDO page,
                                     HttpServletRequest request) {
            if(page==null){
                page=new PageDO();
                page.setPageNumber(1);
                page.count();
            }
            MbChannelExtensionDO channelExtension = new MbChannelExtensionDO();
            channelExtension = customer;
            page.setTotalNumber(channelExtensionService.countOfMbChannelExtension(customer));
            this.tcustomerList  = this.channelExtensionService.getMbChannelExtensionByPage(customer,page);
            request.setAttribute("tcustomerList", tcustomerList);
            request.setAttribute("page",page);
            request.setAttribute("channelExtension",channelExtension);
            return "/channlExtension/channlExtension";
        }

    前端html和js
    <form name ="frm" id="mainForm" method="post" action="<%=request.getContextPath()%>/channlExtension.html">
                <div class='page fix' style="text-align: end;margin:5px 30px 20px 30px;">
                    共 <b>${page.totalNumber}</b> 条
                    <c:if test="${page.currentPage != 1}">
                        <a href="javascript:changeCurrentPage('1')" class='first'>首页</a>
                        <a href="javascript:changeCurrentPage('${page.currentPage-1}')" class='pre'>上一页</a>
                    </c:if>
                    当前第<span>${page.currentPage}/${page.totalPage}</span>页
                    <c:if test="${page.currentPage != page.totalPage}">
                        <a href="javascript:changeCurrentPage('${page.currentPage+1}')" class='next'>下一页</a>
                        <a href="javascript:changeCurrentPage('${page.totalPage}')" class='last'>末页</a>
                    </c:if>
                    跳至 <input id="currentPageText" name="currentPage" type='text' value='${page.currentPage}' class='allInput w28' /> 页 
                    <a href="javascript:changeCurrentPage($('#currentPageText').val())" class='go'>GO</a>
                </div>
    </form>
    
    <script type="text/javascript">
        function changeCurrentPage(currentPage) {
            $("#currentPageText").val(currentPage);
            $("#mainForm").submit();
        }
    </script>

  • 相关阅读:
    .net core项目iis10上出现 HTTP 错误 500.19,错误代码:0x8007000d
    redis安装
    【Docker】来自官方映像的 6 个 Dockerfile 技巧
    vi编辑器内上下左右健变ABCD的修复方法
    linux下安装ping命令
    Managing Chef Cookbooks the Berkshelf way
    chef学习杂记
    源代码与二进制异同
    chef 配置之 Templates
    shell ${}的使用
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7353545.html
Copyright © 2011-2022 走看看