欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

数据库连接池

程序员文章站 2022-04-17 13:51:47
...

计算确定数据表一共分几页:101/pageSize=100/10=10页。rows = select count(1) from users;方法1:pageCount = rows/pageSize + (rows%pageSize==0?0:1); 方法2:pageCount = (rows+ (pageSize-1))/(pageSize);public void doGet(HttpServletRequest req,

计算确定数据表一共分几页:
	101/pageSize=100/10=10页。
	rows = select count(1) from users;
	方法1:pageCount = rows/pageSize + (rows%pageSize==0?0:1);
  方法2:pageCount = (rows+ (pageSize-1))/(pageSize);
public void doGet(HttpServletRequest req, HttpServletResponse response)
			throws ServletException, IOException {
		//第一步:定义每页显示多少行
		int pageSize = 10;
		try{
			//第二步:获取数据表中有多少行
			QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());
			String sql = "select count(*) from users";
			Object o = run.query(sql,new ScalarHandler());
			int rows = Integer.parseInt(o.toString());
			//第三步:计算一共分多少页
			int pageCount= rows/pageSize+(rows%pageSize==0?0:1);
			//将页数放到req
			req.setAttribute("pageCount",pageCount);
			
		}catch(Exception e){
			e.printStackTrace();
		}
		//转发到
		req.getRequestDispatcher("/jsps/show.jsp").forward(req, response);
		
	}

第四步:分析limit的开始位置

用户请求的面码

start

算法:

1

Limit 0,pageSize

Start

= (currentPage-1)*pageSize

2

Limit 10,pageSize

3

Limit 20,pageSize

第五步:对分页以后页码再分页

每个页面,最多显示10个页码

pageNum=10;

startNo

endNo

当前页码

页码范围

算法

1

1~10

If(currentPage

1~10

2

3

4

5

6

2~11

6-4=2 =

6-(pageNum/2-1)=2 = startNo

endNo = startNo+(pageNum-1)=11

7

3~12

8

4~13

9

10

11

11-4 = 7

endNo = 7+9=16

endNo = 11;

startNo = 2 = endNo-(pageNum-1);