java分页实现
来源:互联网 发布:域名定义 编辑:程序博客网 时间:2024/06/05 18:04
首先是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; }
</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>
1 0
- 如何实现分页(Java)
- java怎么实现分页
- Java标签分页实现
- Java实现分页查询
- java分页实现代码
- java分页实现
- java web 分页实现
- java web 分页实现
- java实现分页
- Java如何实现分页
- Java实现分页
- java-实现分页功能
- java分页实现
- Java实现手动分页
- java代码实现分页
- Java中的分页实现
- Java实现分页效果
- mysql java 实现分页
- 嵌入式开发新手篇-如何成为优秀的嵌入式开发者
- Android学习笔记之网络图片加载
- 自定义Material Design风格炫酷加载进度条
- 南邮 OJ 1854 B. Give you a Bag
- hbase故障处理
- java分页实现
- Android studio用WiFi连接adb
- group_concat详解
- Android内存管理基础
- Js-最严谨的校验邮箱地址的正则表达式
- 火狐基本设置
- C++ Primer Plus第六版 第九章 编程练习答案
- ASP.NET(1)——三个对象
- JavaScript 表单验证