Web教程----分页


现代web系统中存在大量的数据,如果不分页,这些数据将难以处理
分页有利于页面的展示,并且减轻服务器和数据库的压力。

分页的种类

1.伪分页,内存级分页

查询的是全部数据,但是只展示一部分

2.真分页,又称为物理分页,或者叫组数据库分页

查询和展示的都是部分数据

MySQL数据库分页

-- mysql数据库分页语句
-- 关键字limit 起始位置(offset) 查询数量((pageSize)
-- 全量查询
select * from student;

-- 每页显示5条
select *from student limit 0,5;

-- 第二页显示的内容
SELECT *from student limit 5,5;

Dao层代码


package org.lanqiao.dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.lanqiao.bean.Student;
import org.lanqiao.dao.IStudentDao;
import org.lanqiao.util.DBUtil;

public class StudentDaoImpL implements IStudentDao{

	@Override
	public List<Student> getStuByPage(int currentPage, int pageSize) {
		
		//建立连接 
		Connection conn=DBUtil.getConn();
		String sql="select *from student limit ?,?";
		
		Object[] objs= {(currentPage-1)*pageSize,pageSize};
		
		ResultSet rs=DBUtil.excuteQuery(sql, objs);
		
		List<Student> students=new ArrayList<>();
		
		try {
			while(rs.next()) {
				int sid=rs.getInt("id");
				String name=rs.getString("name");
				String pass=rs.getString("pass");
				String grade=rs.getString("grade");
				int age=rs.getInt("age");
				int teaId=rs.getInt("tea_id");
			
				Student student=new Student(sid,name,pass,grade,age,teaId);
				students.add(student);
			}
				
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return students;
	}

}

分页工具类Page.java

currentPage 当前页

pageSize 每页显示的条数

offset 偏移量

totalCount 数据总条数

totalPage 数据总页数

获取总页数的数据的总条数

-- 获取总条数
SELECT COUNT(id) from student;

Dao层代码

public int getStuCount() {
		//建立连接 
		Connection conn=DBUtil.getConn();
		String sql="select count(id) from student";
		
		ResultSet rs=DBUtil.excuteQuery(sql, null);
		int count=-1;
		try {
			if(rs.next()) {
				count=rs.getInt(1);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return count;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值