java数据分页_Java Web实现数据分页

Java语言是一门面向对象的编程,所以想实现分页功能就先设计一个分页的类(不设计也行,但是那就没什么意义了)。因为这个类不是专门给某个数据准备的,是要设计成只要想分页都可以使用这个类。所以就要把这个类设计成一个泛型类。类里一般有几个实例变量总页数、总条数、每页条数、当前页数、数据,然后还有这几个实例变量的get、set方法。

第一步:设计一个分页工具类PageBean

41724ff0dc803674792aa4b065fc0ec3.png

第二步:准备一个dao实现类,存放两方法,一个是查询数据的方法,一个是查询数据总条数的方法。

查询数据的方法需要带两个参数,pageNumber:当前页码,pageSize:每页显示的条数

查询数据总条数的方法:

public int findAllCount1() {

int count = 0;

try {

conn = JdbcUtil.getConnection();

String findAllCountSql = "SELECT COUNT(*) FROM sys_user AS u \r\n" +

"LEFT JOIN sys_role AS r ON u.RoleID = r.RoleID\r\n" +

"LEFT JOIN sys_userpersonal AS up ON u.UserID = up.UserID\r\n";

st = conn.prepareStatement(findAllCountSql);

rs = st.executeQuery();

while(rs.next()) {

count = rs.getInt(1);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

JdbcUtil.close(conn, st, rs);

}

return count;

}

第三步:准备一个service实现类,存放处理一些业务的操作

public PageBean findPageService(int pageNumber, int pageSize){

//创建实体类

UserDao ud = new UserDaoImpl();

//查询总共有多少条数据,调用dao中查询总条数的方法

int countAll = ud.findAllCount(up);

//计算总页数

int pageAll = countAll%pageSize==0?countAll/pageSize:countAll/pageSize+1;

//判断获取到的页面是否合法

if(pageNumber>pageAll) {

//如果当前页码大于总页码,则将总页码数赋给当前页码

pageNumber=pageAll;

}

if(pageNumber<1) {

//如果当前页码小于1,证明页码不存在,则将当前页码等于1

pageNumber=1;

}

//调用查询方法

List listpageNumber = ud.findPage(pageNumber, pageSize, up);

//创建分页工具类对象

PageBean pageBean = new PageBean();

pageBean.setCountAll(countAll);//总条数

pageBean.setList(listpageNumber);//查询出来的数据

pageBean.setPageSize(pageSize);//每页条数

pageBean.setPageAll(pageAll);//总页数

pageBean.setPageNumber(pageNumber);//当前页数

//返回结果

return pageBean;

}

第四步:准备一个servlet,接收返回数据

private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String pageNumber= request.getParameter("pageNumber");//当前页码

String pageSize = request.getParameter("pageSize");//每页条数

//判断页码和条数是否为空(首次访问一般不带参数)

if(OtherUtil.isNull(pageNumber)) {

//页码为空,设置为第一页

pageNumber = "1";

}

if(OtherUtil.isNull(pageSize)) {

//条数为空,设置为每页5条数据

pageSize = "5";

}

//创建一个PageBean对象(存放最后结果)

PageBean pageBeanUserPersonal = new PageBean();

//创建一个UserService对象(调用分页方法)

UserService us = new UserServiceImpl();

//调用分页方法

pageBeanUserPersonal = us.findPageService(Integer.parseInt(pageNumber), Integer.parseInt(pageSize));

//使用json返回到页面

JSONArray json = JSONArray.fromObject(pageBeanUserPersonal);

response.getWriter().print(json);

}

第五步:对页面进行操作显示,数据输出格式如下:

fd90ee73b3746d3bb1234d9db4c69f95.png

结果:

b2831235fcd13822e6436be17ad52bdc.png

d39367655f4620af9e0b8ac46ab07e87.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值