分页一
来源:互联网 发布:win7搜不到网络打印机 编辑:程序博客网 时间:2024/06/14 14:00
分页
如何分页:
首页 上一页 下一页 末页 当前页/总页数 总记录数
分页所需要的数据:
1)当前页当前页根据页面的URL链接的参数获得
url: http://localhost:8080/shop/list.jsp?pageNo=1
(pageNo)当前页 = 1
2) 每页显示条数
由自己定义 pageSize = 3; 每页显示三条数据
3)列表显示的数据
查询数据的分页计算
#每页数据的开始下标 = (页码 - 1) * 每页条数
#第1页
SELECT * FROM t_student LIMIT 0,3;
#第2页
SELECT * FROM t_student LIMIT 3,3;
#第3页
SELECT * FROM t_student LIMIT 6,3;
4)总记录数
得到数据库中的所有记录数
select count(1) from t_student
5)总页数
总页数 = (总记录数 % 每页显示条数) > 0 ? (总记录数 / 每页显示条数) + 1 : (总记录数 / 每页显示条数)
pojo类
public class Student {
private int id;
private String name;
private String sex;
private int age;
private int grade;
private String introduce;
private String img;
public Student(){
}
dao层
/**
* 分页查询学生信息
* @param pageNo页码
* @param pageSize每页条数
* @return
*/
public List<Student> queryStudent(int pageNo, int pageSize);
/**
* 得到学生信息的总条数
* @return
*/
public int getStudentCount();
* 分页查询学生信息
* @param pageNo页码
* @param pageSize每页条数
* @return
*/
public List<Student> queryStudent(int pageNo, int pageSize);
/**
* 得到学生信息的总条数
* @return
*/
public int getStudentCount();
dao的实现类
@Override
public List<Student> queryStudent(int pageNo, int pageSize) {
String sql = "select * from t_student limit ?,?";
//每页数据的开始下标 = (页码[pageNo] - 1) * 每页条数[pageSize]
int startIndex = (pageNo - 1) * pageSize;
Object[] params = new Object[]{startIndex,pageSize};
List<Student> students = new ArrayList<Student>();
ResultSet rs = super.query(sql, params);
try {
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
int age = rs.getInt("age");
int grade = rs.getInt("grade");
String introduce = rs.getString("introduce");
String img = rs.getString("img");
Student student = new Student(id, name, sex, age, grade, introduce, img);
students.add(student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
super.close();
}
return students;
}
@Override
public int getStudentCount() {
String sql = "select count(1) records from t_student";
Object[] params = new Object[]{};
nt records = 0;
ResultSet rs = super.query(sql, params);
try {
if(rs.next()){
records = rs.getInt("records");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
super.close();
}
return records;
}
public List<Student> queryStudent(int pageNo, int pageSize) {
String sql = "select * from t_student limit ?,?";
//每页数据的开始下标 = (页码[pageNo] - 1) * 每页条数[pageSize]
int startIndex = (pageNo - 1) * pageSize;
Object[] params = new Object[]{startIndex,pageSize};
List<Student> students = new ArrayList<Student>();
ResultSet rs = super.query(sql, params);
try {
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
int age = rs.getInt("age");
int grade = rs.getInt("grade");
String introduce = rs.getString("introduce");
String img = rs.getString("img");
Student student = new Student(id, name, sex, age, grade, introduce, img);
students.add(student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
super.close();
}
return students;
}
@Override
public int getStudentCount() {
String sql = "select count(1) records from t_student";
Object[] params = new Object[]{};
nt records = 0;
ResultSet rs = super.query(sql, params);
try {
if(rs.next()){
records = rs.getInt("records");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
super.close();
}
return records;
}
service层忽略
jsp页面
<%
//页码
int pageNo = 1;
String pageNoStr = request.getParameter("pageNo");
//初次进入list.jsp页面,没有pageNo参数值,只有当点击分页链接的时候才能获取到
try{
if(null != pageNoStr && !pageNoStr.equals("")){
pageNo = Integer.parseInt(pageNoStr);
}
} catch(NumberFormatException e){
}
//每页显示条数
int pageSize = 3;
//调用StudentDao查询学生信息获得学生对象集合
StudentService studentService = new StudentServiceImpl();
//总记录数
int totalCount = studentService.getStudentCount();
//总页数
int totalPage = (totalCount % pageSize) > 0 ? (totalCount / pageSize + 1) : (totalCount / pageSize);
//当页码大于总页数时,默认显示最后一页
if(pageNo < 0 || pageNo > totalPage){
pageNo = totalPage;
}
//每页显示的数据
List<Student> students = studentService.queryStudent(pageNo, pageSize);
%>
//页码
int pageNo = 1;
String pageNoStr = request.getParameter("pageNo");
//初次进入list.jsp页面,没有pageNo参数值,只有当点击分页链接的时候才能获取到
try{
if(null != pageNoStr && !pageNoStr.equals("")){
pageNo = Integer.parseInt(pageNoStr);
}
} catch(NumberFormatException e){
}
//每页显示条数
int pageSize = 3;
//调用StudentDao查询学生信息获得学生对象集合
StudentService studentService = new StudentServiceImpl();
//总记录数
int totalCount = studentService.getStudentCount();
//总页数
int totalPage = (totalCount % pageSize) > 0 ? (totalCount / pageSize + 1) : (totalCount / pageSize);
//当页码大于总页数时,默认显示最后一页
if(pageNo < 0 || pageNo > totalPage){
pageNo = totalPage;
}
//每页显示的数据
List<Student> students = studentService.queryStudent(pageNo, pageSize);
%>
<tr align="center">
<td colspan="8">
<%
//当用户点击到首页时,把首页和上一页进行隐藏
if(pageNo != 1){
%>
<a href="<%=path %>/pages/list.jsp?pageno=1">首页</a>
<a href="<%=path %>/pages/list.jsp?pageNo=<%=pageNo-1%>">上一页</a>
<%
}
%>
<%
//当用户点击到最后一页时,把下一页和末页进行隐藏
if(pageNo != totalPage){
%>
<a href="<%=path %>/pages/list.jsp?pageNo=<%=pageNo+1%>">下一页</a>
<a href="<%=path %>/pages/list.jsp?pageNo=<%=totalPage%>">末页</a>
<%
}
%>
当前页/总页数 总记录数</td>
</tr>
0 0
- 分页一
- JSP分页技术一
- 分页的逻辑一
- 分页(一)
- 大话分页(一)
- JSP 分页(一)
- 分页功能(一)
- sql数据库分页一
- 数据库分页(一)
- Ajax实现分页一
- 分页插件(一)
- asp.net分页(一)
- Struts分页显示一例
- JSP分页效果(一)
- ASP.NET 自定义分页一
- 一、虚拟内存分配和分页
- Java通用分页【完整版】(一)
- 一 分页操作的分析:
- 【求助】想弄一个3列的列表该怎么办?
- 快学数据挖掘—数据探索—贡献度分析
- 调试android手机,连不上的解决思路
- android用GPS,为什么代码下有红线但是不报错可运行
- This version of ADT requires Android SDK Tools revision 22.61 or above
- 分页一
- Gson解析异常,请求大神解惑,感激不尽啊
- gitbash一直报:sh: __git_ps1: command not found的解决办法 ---待验证
- 关于cocos2dxActivity监听不到返回健的问题
- 【凡凡说项目】挑一件事情坚持下去
- 学习小记 - Python爬虫 (3) 利用Python爬取wanimal所有图片
- android sdk 更新可用的
- Android Studio 的项目怎么导入Eclipse
- Linux内核的list_head民用改造