首先是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>
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-09-13 02:31:25