上代码:
首先需要创建一个工具类pageHelpder
public class PageHelper {
// 总记录数 总页数 每页条数 当前页 当前页的数据
// 分页 为了重新编写sql语句
private int total ;
private int totalPage ; //总页数
private int limit ;
private int page ;
private Object data ;
public int getTotalPage() {
return totalPage;
}
// 100条数据 每页10条 总页数: 10
public void setTotalPage() {
this.totalPage = total%limit > 0 ? total/limit +1 : total/limit; // 得到一个整数 100/10 = 10 102/10 = 10
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
在servlet层:`
//访问路径
@WebServlet("/manger/userBuyList.do")
public class UserBuyMangerPageServlet extends HttpServlet {
public static UserBuyService userBuyService = new UserBuyServiceImp();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取前台
String page = req.getParameter("page");
String limit = req.getParameter("limit");
//调用service
PageHelper pageHelper = userBuyService.findAll(page,limit,req);
resp.getWriter().println(JSONUtil.parseObj(ResultData.success("",pageHelper)));
}
}
在service中加入:
@Override
public PageHelper findAll(String page, String limit, HttpServletRequest req) {
//初始化分页工具类
PageHelper pageHelper = new PageHelper();
//填写每页数据
pageHelper.setPage(Integer.parseInt(page));
pageHelper.setLimit(Integer.parseInt(limit));
//查询全部数据的数量
int count = userBuyDao.count();
//填写全部数据数量
pageHelper.setTotal(count);
pageHelper.setTotalPage();
调用dao方法
userBuys = userBuyDao.userBuy(pageHelper,req);
pageHelper.setData(userBuys);
return pageHelper;
}
在dao中:
@Override
public List<UserBuy> userBuy(PageHelper pageHelper, HttpServletRequest req) {
List<UserBuy> userBuys = new ArrayList<>();
//核心部分 添加 limit 查询
StringBuffer sql = new StringBuffer();
sql.append("select u.*,mu.username from userbuy u,myuser mu where u.uId=mu.id and status=1");
if(pageHelper!=null){
sql.append(" limit " + (pageHelper.getPage() - 1) * pageHelper.getLimit() + " , " + pageHelper.getLimit());
}
System.out.println(sql.toString());
ResultSet select = DBUtil.select(sql.toString(),new Object[]{});
try {
while (select.next()){
UserBuy userBuy = fillObject(select);
userBuys.add(userBuy);
}
}catch (SQLException e){
}
req.getSession().setAttribute(SessionKey.USER_BUY,userBuys);
return userBuys;
}