在用ssm框架写一个项目时,用到了分页
首先写一个分页实体类
package com.ordertime.utils;
import java.util.ArrayList;
import java.util.List;
public class Page<T> {
//当前页
private int pageno;
//当前页开始下标
private int pageStartIndex;
//每页显示的数量
private int pagesize;
//总记录数
private int totalRows;
//总页数
private int totalPages;
//每页显示的内容
private List<T> datas;
public Page(int pageno, int pagesize) {
this();
if(pageno <= 0){
pageno = 1;
}
if(pagesize <= 0){
pagesize = 5;
}
this.pageno = pageno;
this.pagesize = pagesize;
}
public Page() {
super();
this.pageno = 1;
this.pagesize =5;
datas = new ArrayList<>();
}
public int getPageno() {
return pageno;
}
public void setPageno(int pageno) {
this.pageno = pageno;
}
public int getPageStartIndex() {
pageStartIndex = (pageno - 1)*pagesize;
return pageStartIndex;
}
public void setPageStartIndex(int pageStartIndex) {
this.pageStartIndex = pageStartIndex;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getTotalPages() {
if(totalRows % pagesize == 0){
totalPages = totalRows / pagesize;
}
else
totalPages = totalRows / pagesize + 1;
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public List<T> getDatas() {
return datas;
}
public void setDatas(List<T> datas) {
this.datas = datas;
}
@Override
public String toString() {
return "Page [pageno=" + pageno + ", pageStartIndex=" + pageStartIndex + ", pagesize=" + pagesize
+ ", totalRows=" + totalRows + ", totalPages=" + totalPages + ", datas=" + datas + "]";
}
}
mapper层sql代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ordertime.goods.dao.IGoodsDao">
//查询总记录数
<select id="selectAllCount" resultType="int">
SELECT COUNT(*) FROM goods
WHERE bid = #{id}
</select>
<select id="selectCurrentPage" resultType="Goods">
select gid,goodsname,goodsprice,image,goodsdesc from goods where bid=#{bid} LIMIT #{startIndex},#{size}
</select>
</mapper>
再到controller层
@RequestMapping("/selectGoods.do")
public String selectGoods(HttpServletRequest request,@RequestParam(defaultValue="1") int pageno){
HttpSession session = request.getSession(false);
Business business = (Business) session.getAttribute("business");
Business bid = service.findBidByBusinessid( business.getBusinessid());
Page<Goods> page = service.findCurrentPage(pageno, bid.getBid());
//System.out.println(page);
session.setAttribute("page", page);
return "redirect:/Goods/index.jsp";
}
页面显示代码
<div style="padding-left:700px;padding-top:20px;">
<c:choose>
<c:when test="${page.totalPages == 1}">
<div> 首页 上一页 下一页 末页 当前是${page.pageno } / ${page.totalPages }页 共${page.totalRows }条记录</div>
</c:when>
<c:when test="${page.pageno == page.totalPages}">
<div><a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=1&id=${bid}"> 首页</a> <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.pageno -1}&id=${bid}"> 上一页 </a> 下一页 末页 当前是${page.pageno } / ${page.totalPages }页 共${page.totalRows }条记录</div>
</c:when>
<c:when test="${page.pageno == 1}">
<div> 首页 上一页 <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.pageno +1}&id=${bid}"> 下一页 </a> <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.totalPages}&id=${bid}">末页</a> 当前是${page.pageno } / ${page.totalPages }页 共${page.totalRows }条记录</div>
</c:when>
<c:otherwise>
<div><a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=1&id=${bid}"> 首页</a> <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.pageno -1}&id=${bid}"> 上一页</a> <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.pageno +1}&id=${bid}"> 下一页 </a> <a href="${pageContext.request.contextPath }/goods/selectGoods.do?pageno=${page.totalPages}&id=${bid}"> 末页 </a> 当前是${page.pageno } / ${page.totalPages }页 共${page.totalRows }条记录</div>
</c:otherwise>
</c:choose>
</div>
我觉得分页查询就是建好分页类,其他就是查询的问题了。