jsp servlet mysql分页_servlet实现mysql数据库分页

本文介绍了如何利用Servlet结合JSP和DAO层实现MySQL数据库的分页查询。通过设置SQL语句的LIMIT子句动态调整查询范围,根据页码和每页显示条数获取所需数据。在Servlet中处理请求,调用DAO方法获取分页数据,并将结果转发到JSP页面展示。
摘要由CSDN通过智能技术生成

一、分页所需要的sql语句准备

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示第一条记录

n是指从第m+1条开始,取n条。

例如:

select * from tablename limit 2,4

即取出第3条至第6条,4条记录

第n页 每页x条 则用语句 limit (n-1)* x  ,x

计算总共需要多少页: t表示总条  x表示每页显示多少条  总页数为:(t+x-1)/x

二、具体实现

1、dao层,接口实现

1 packagecom.aaa.dao;2

3 importjava.util.List;4 importjava.util.Map;5

6

7

8 importjava.util.List;9 importjava.util.Map;10

11 /**

12 * 分页查询13 */

14

15 public interfaceIPageDAO {16

17 /**

18 *19 * 第n页 每页x条 limit (n-1)* x ,x20 * t总共的条数 x一页显示多少count 总:(t+x-1)/x21 *22 */

23

24 /**

25 * 参数:页码,一页显示的条数26 * 返回值:List27 */

28

29 List> getPage(int page, intcount);30 }

2、dao接口的实现类

1 packagecom.aaa.dao.impl;2

3 importcom.aaa.dao.IPageDAO;4 importcom.aaa.util.DBUtil;5

6 importjava.util.List;7 importjava.util.Map;8

9 public class PageDAOImpl implementsIPageDAO {10 @Override11 public List> getPage(int page, intcount) {12

13 //使用了拼接,将传过来的页码与每页显示的条数拼接在sql语句中

14 String sql="select * from product LIMIT "+page+","+count;15 System.out.println(sql);16 returnDBUtil.executeQuery(sql);17 }18 }

3、servlet业务处理

1 packagecom.aaa.servlet;2

3 importcom.aaa.dao.IPageDAO;4 importcom.aaa.dao.impl.PageDAOImpl;5

6 importjavax.servlet.ServletException;7 importjavax.servlet.annotation.WebServlet;8 importjavax.servlet.http.HttpServlet;9 importjavax.servlet.http.HttpServletRequest;10 importjavax.servlet.http.HttpServletResponse;11 importjava.io.IOException;12 importjava.util.List;13 importjava.util.Map;14

15 @WebServlet("/page")16 public class PageServlet extendsHttpServlet {17

18 @Override19 protected void service(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException {20

21 //获取从前台页面穿过来 的页码数,如果需要传每个页面显示的条数,也可以参数接收

22 String a = req.getParameter("a");23

24 //调用dao,查询数据

25 IPageDAO dao=newPageDAOImpl();26 List> page = dao.getPage(Integer.parseInt(a), 10);27

28 //共享参数,将所有的商品信息共享

29 req.setAttribute("allProduct",page);30

31 //请求转发到 index.jsp 页面

32 req.getRequestDispatcher("/views/index.jsp").forward(req,resp);33 }34 }

4、jsp页面的分页设计

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"+"views/";%>

text-align: center;

margin-top: 50px;

}

.page a{

text-decoration: none;

border:1px solid #f9d52b;

padding: 5px 7px;

color: #767675;

cursor: pointer;

}

上一页

1

2

3

4

5

下一页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值