`
- 浏览:
274671 次
- 来自:
云南大理
-
create database bbs;
use bbs;
create table article
(
id int primary key auto_increment,
pid int,
rootid int,
title varchar(255),
cont text,
pdate datetime,
isleaf int #1-not leaf 0-leaf
);
insert into article values (null, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1);
insert into article values (null, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1);
insert into article values (null, 2, 1, '蚂蚁也不好过','蚂蚁也不好过', now(), 0);
insert into article values (null, 2, 1, '瞎说', '瞎说', now(), 1);
insert into article values (null, 4, 1, '没有瞎说', '没有瞎说', now(), 0);
insert into article values (null, 1, 1, '怎么可能', '怎么可能', now(), 1);
insert into article values (null, 6, 1, '怎么没有可能', '怎么没有可能', now(), 0);
insert into article values (null, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0);
insert into article values (null, 2, 1, '大象进医院了', '大象进医院了', now(), 1);
insert into article values (null, 9, 1, '护士是蚂蚁', '护士是蚂蚁', now(), 0);
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ page import="java.sql.*" %>
<%
Connection conn = null;
ResultSet rs=null;
Statement stmt=null;
//定义页数
int pageSize=4;
//第一页
int pageNum=1;
//sql语句中的分页位置
int startPos=0;
//判断是否字符串空,作用是防止第一次运行时会是空的
if(("").equals(request.getParameter("pageNum"))|| null ==request.getParameter("pageNum")){
pageNum=1;
}else{
//存储传过来的页数
pageNum=Integer.parseInt(request.getParameter("pageNum"));
}
//如果出现-1页的情况则转到第一页中
if(pageNum<=0){
pageNum=1;
}
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs", "root" , "root");
String sql="select count(*) from article where pid=0";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
rs.next();
//System.out.println("rs.getInt(1)/4)%2==0 =="+((rs.getInt(1)/4)%2==0) );
//这个可以算出一共是几页,也就是最后一面,如果是奇数,那么说明有条不能完整的凑成一页,但他们也得占一页
int totalPage=(rs.getInt(1)/4)%2==0 ? rs.getInt(1)/4+1:rs.getInt(1)/4;
//当下一页超过最后一页时,把最后一页给下一页
if(pageNum>totalPage){
pageNum=totalPage;
}
System.out.println("totalPage"+totalPage);
%>
<a href=index.jsp?pageNum=1>第一页</a>
<a href=index.jsp?pageNum=<%=pageNum-1 %>>上一页</a>
<a href=index.jsp?pageNum=<%=pageNum+1 %>>下一页</a>
<a href=index.jsp?pageNum=<%=totalPage %>>最后一页</a>
<br>
<%
System.out.println("rs.getInt(1)"+rs.getInt(1));
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException ex){
ex.printStackTrace();
}
%>
<%
//因为下面的SQL语句的分页需要开始位置,
//每页4条,一共可分7页,这都是从数据库中自己计算出来的结果
startPos=pageSize*(pageNum-1);
System.out.println("startPos="+startPos);
String sqlStr="select * from article where pid limit "+startPos+", "+pageSize+"; ";
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);
while(rs.next()){
%><%=rs.getString("title") %><br><%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
与MySQL等其他数据库管理系统提供的`LIMIT`或`TOP`等关键字不同,Oracle并没有直接提供这些关键字用于分页。然而,Oracle提供了`ROWNUM`功能,可以通过巧妙运用这一特性来实现分页查询。 #### 1. ROWNUM 的基本介绍...
在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...
Node.js结合MySQL实现分页查询是一种常见的数据处理方式,在Web应用中尤为常见。分页可以有效提高页面的响应速度,并优化用户的浏览体验。本文主要介绍了在Node.js环境下,如何使用MySQL数据库实现分页功能。 首先...
在结果集`res`中,我们可以遍历并处理每一条数据。注意,`OFFSET`值会随着页面改变而增加,例如,获取第二页数据时,`OFFSET`应设为10(即前10条数据后的下10条)。 为了实现真正的分页功能,我们需要一个用户界面...
MySQL 的 limit 语句是根据数据表的大小来确定分页的位置的。因此,当我们执行 limit 90000, 10 时,MySQL 需要扫描整个数据表来确定分页的位置,这将导致性能下降。 解决方案一:使用 id 主键索引 我们可以使用 ...
- 首先,通过`nowpage`和`size`计算出`begin_row`的值,即当前页的第一条记录的索引位置。 - 接着,使用`CONCAT`函数将`LIMIT`子句构建为字符串形式,包括起始行和每页的大小。 - 使用`CONCAT`函数将整个查询语句...
然而,随着数据量的增长,直接使用OFFSET进行分页可能会变得效率低下,因为MySQL需要遍历从第一条记录到OFFSET指定的位置,这在大数据量下极其耗时。为了解决这个问题,我们可以利用MySQL的ROW_NUMBER()函数或者自增...
例如,`SELECT * FROM table ORDER BY column LIMIT offset, limit` 这个SQL语句会返回从`offset`位置开始的`limit`条记录。这种方式在数据量较小的情况下效率较高,因为它避免了传输大量不必要的数据。然而,随着...
在数据库管理中,分页技术是一项非常重要的功能,它允许用户以较小的数据量逐步加载大量数据,从而提高网页或应用程序的响应速度和用户体验。本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 ...
MySQL 分页是数据库查询中非常常见的一种操作,特别是在网页或者应用程序中展示大量数据时,为了提高用户体验,通常会采用分页的方式将数据分批显示。本篇将详细讲解MySQL分页的基本原理、语法以及实际应用。 一、...
同时,也有一些数据库管理工具,如MySQL Workbench、phpMyAdmin,它们内置了直观的分页查询功能,方便开发者进行数据浏览和调试。 综上所述,MySQL的分页实现是一个多方面考虑的问题,包括查询效率、代码可维护性...
MySQL数据库在处理大量数据时...总的来说,MySQL的分页查询是数据库优化的重要一环,正确地设计和使用分页策略能显著提升用户体验和系统性能。通过学习和实践这个"mysql分页实例",你将能够更好地理解和应用这些技巧。
SSM框架,全称Spring、SpringMVC和...总结起来,本项目是一个基本的SSM框架实践,通过结合Spring、SpringMVC和MyBatis实现了MySQL数据库的分页查询功能,对于初学者理解SSM框架的整合和分页实现具有很好的学习价值。
在Java和MySQL的世界里,分页是Web应用程序中不可或缺的一部分,尤其在处理大量数据时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢或者内存溢出。本项目提供了一个基于Java后端和MySQL数据库的...
本文将深入探讨使用JDBC(Java Database Connectivity)进行物理分页的实现方法,特别是在MySQL数据库中的应用。 首先,我们要了解JDBC是Java平台的标准API,它提供了与各种数据库交互的能力。在进行分页查询时,...
例如,如果我们要获取第2页(每页10条记录)的数据,SQL语句会是这样的: ```sql SELECT * FROM table_name LIMIT 10 OFFSET 10; ``` 这里的10是每页记录数,10是偏移量,即第一页的记录数。 二、Spring MVC 分页...
在Java开发中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的标准接口,而MySQL则是一种广泛使用的开源关系型数据库。当我们处理大量数据时,分页查询变得尤为重要,因为它能够有效地提高网页...
`LIMIT`用于指定每页显示的数据条数,`OFFSET`用于指定从哪一条记录开始取数据。例如,要获取第2页(每页5条数据)的信息,SQL语句如下: ```sql SELECT * FROM table_name LIMIT 5 OFFSET 5; ``` 这里的5是每页的...
在分页场景中,MySQL提供了SQL查询语句来帮助我们获取特定范围的数据,例如使用`LIMIT`和`OFFSET`关键字进行分页查询。 实现JSP+MySQL分页组件的关键步骤如下: 1. **设计数据库表**:首先,你需要有一个包含足够...
考虑设定一个合理的分页大小,如20或50条记录,同时提供搜索功能帮助用户快速定位。 7. **优化用户体验**: 当`OFFSET`值过大时,考虑提供其他导航方式,如日期范围筛选或内容摘要预览,减少用户连续翻页的需求。...