分页概述
分页是web应用程序非常重要的一个技术。数据库中的数据可能是成千上万的,不可能把这么多的数据一次显示在浏览器上面。一般根据每行数据在页面上所占的空间每页显示若干行,比如一般20行是一个比较理想的显示状态。
分页实现思路
对于海量的数据查询,需要多少就取多少,显然是最佳的解决方法,假如某个表中有200万条记录,第一页取前20条,第二页取21~40条记录。
select * from 表名 order by id limit 0,20 ;
select * from 表名 order by id limit 20,20;
select * from 表名 order by id limit 40,20;
分页代码实现
步骤:
1.确定每页显示的数据数量
2.确定分页显示所需的总页数
3.编写SQL查询语句,实现数据查询
4.在JSP页面中进行分页显示设置
代码实现如下:
数据库表语句如下
create database day16;
use day16;
create table student(
studentNo int(4) NOT NULL,
loginPwd varchar(20) NOT NULL,
studentName varchar(50) NOT NULL,
sex char(2) NOT NULL,
bornDate datetime
);
-- 向数据库中添加100条添加记录
创建工程和程序包
com.xx.myschool.dao
com.xx.myschool.dao.impl
com.xx.myschool.domain
com.xx.myschool.service
com.xx.myschool.service.impl
com.xx.myschool.utils
com.xx.myschool.test
数据库配置文件db.properties
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/day16
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=5000
创建实体类和工具类
Student类
package com.xx.myschool.domain;
import java.util.Date;
/**
* 学生类
* @author wgy
*/
public class Student {
private int studentNo;
private String loginPwd;
private String studentName;
private String sex;
private Date bornDate;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int studentNo, String loginPwd, String studentName, String sex, Date bornDate) {
super();
this.studentNo = studentNo;
this.loginPwd = loginPwd;
this.studentName = studentName;
this.sex = sex;
this.bornDate = bornDate;
}
public int getStudentNo() {
return studentNo;
}
public void setStudentNo(int studentNo) {
this.studentNo = studentNo;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {