`
gaoyu
  • 浏览: 274671 次
  • 来自: 云南大理
社区版块
存档分类
最新评论

一条mysql语句进行分页

阅读更多
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>
分享到:
评论

相关推荐

    oracle一条sql语句分页

    与MySQL等其他数据库管理系统提供的`LIMIT`或`TOP`等关键字不同,Oracle并没有直接提供这些关键字用于分页。然而,Oracle提供了`ROWNUM`功能,可以通过巧妙运用这一特性来实现分页查询。 #### 1. ROWNUM 的基本介绍...

    mysql数据库实现分页

    在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...

    nodejs mysql 实现分页的方法

    Node.js结合MySQL实现分页查询是一种常见的数据处理方式,在Web应用中尤为常见。分页可以有效提高页面的响应速度,并优化用户的浏览体验。本文主要介绍了在Node.js环境下,如何使用MySQL数据库实现分页功能。 首先...

    C++实现MySQL分页查询

    在结果集`res`中,我们可以遍历并处理每一条数据。注意,`OFFSET`值会随着页面改变而增加,例如,获取第二页数据时,`OFFSET`应设为10(即前10条数据后的下10条)。 为了实现真正的分页功能,我们需要一个用户界面...

    如何优化Mysql千万级快速分页

    MySQL 的 limit 语句是根据数据表的大小来确定分页的位置的。因此,当我们执行 limit 90000, 10 时,MySQL 需要扫描整个数据表来确定分页的位置,这将导致性能下降。 解决方案一:使用 id 主键索引 我们可以使用 ...

    mysql存储过程实现分页

    - 首先,通过`nowpage`和`size`计算出`begin_row`的值,即当前页的第一条记录的索引位置。 - 接着,使用`CONCAT`函数将`LIMIT`子句构建为字符串形式,包括起始行和每页的大小。 - 使用`CONCAT`函数将整个查询语句...

    MySql 分页存储过程以及代码调用

    然而,随着数据量的增长,直接使用OFFSET进行分页可能会变得效率低下,因为MySQL需要遍历从第一条记录到OFFSET指定的位置,这在大数据量下极其耗时。为了解决这个问题,我们可以利用MySQL的ROW_NUMBER()函数或者自增...

    关于Mysql分页的两种方法,假分页和limit分页

    例如,`SELECT * FROM table ORDER BY column LIMIT offset, limit` 这个SQL语句会返回从`offset`位置开始的`limit`条记录。这种方式在数据量较小的情况下效率较高,因为它避免了传输大量不必要的数据。然而,随着...

    mySql与oracle分页技术

    在数据库管理中,分页技术是一项非常重要的功能,它允许用户以较小的数据量逐步加载大量数据,从而提高网页或应用程序的响应速度和用户体验。本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 ...

    mysql 分页例子

    MySQL 分页是数据库查询中非常常见的一种操作,特别是在网页或者应用程序中展示大量数据时,为了提高用户体验,通常会采用分页的方式将数据分批显示。本篇将详细讲解MySQL分页的基本原理、语法以及实际应用。 一、...

    MySQL分页实现

    同时,也有一些数据库管理工具,如MySQL Workbench、phpMyAdmin,它们内置了直观的分页查询功能,方便开发者进行数据浏览和调试。 综上所述,MySQL的分页实现是一个多方面考虑的问题,包括查询效率、代码可维护性...

    mysql分页实例

    MySQL数据库在处理大量数据时...总的来说,MySQL的分页查询是数据库优化的重要一环,正确地设计和使用分页策略能显著提升用户体验和系统性能。通过学习和实践这个"mysql分页实例",你将能够更好地理解和应用这些技巧。

    ssm框架-mysql的简单分页

    SSM框架,全称Spring、SpringMVC和...总结起来,本项目是一个基本的SSM框架实践,通过结合Spring、SpringMVC和MyBatis实现了MySQL数据库的分页查询功能,对于初学者理解SSM框架的整合和分页实现具有很好的学习价值。

    java和mysql的分页程序

    在Java和MySQL的世界里,分页是Web应用程序中不可或缺的一部分,尤其在处理大量数据时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢或者内存溢出。本项目提供了一个基于Java后端和MySQL数据库的...

    JDBC分页 物理分页 mysql实现

    本文将深入探讨使用JDBC(Java Database Connectivity)进行物理分页的实现方法,特别是在MySQL数据库中的应用。 首先,我们要了解JDBC是Java平台的标准API,它提供了与各种数据库交互的能力。在进行分页查询时,...

    mysql+spring mvc 实现分页

    例如,如果我们要获取第2页(每页10条记录)的数据,SQL语句会是这样的: ```sql SELECT * FROM table_name LIMIT 10 OFFSET 10; ``` 这里的10是每页记录数,10是偏移量,即第一页的记录数。 二、Spring MVC 分页...

    JDBC-MySQL分页查询

    在Java开发中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的标准接口,而MySQL则是一种广泛使用的开源关系型数据库。当我们处理大量数据时,分页查询变得尤为重要,因为它能够有效地提高网页...

    java-web-mysql 分页demo

    `LIMIT`用于指定每页显示的数据条数,`OFFSET`用于指定从哪一条记录开始取数据。例如,要获取第2页(每页5条数据)的信息,SQL语句如下: ```sql SELECT * FROM table_name LIMIT 5 OFFSET 5; ``` 这里的5是每页的...

    JSP+MySql分页组件

    在分页场景中,MySQL提供了SQL查询语句来帮助我们获取特定范围的数据,例如使用`LIMIT`和`OFFSET`关键字进行分页查询。 实现JSP+MySQL分页组件的关键步骤如下: 1. **设计数据库表**:首先,你需要有一个包含足够...

    MYSQL分页limit速度太慢的优化方法

    考虑设定一个合理的分页大小,如20或50条记录,同时提供搜索功能帮助用户快速定位。 7. **优化用户体验**: 当`OFFSET`值过大时,考虑提供其他导航方式,如日期范围筛选或内容摘要预览,减少用户连续翻页的需求。...

Global site tag (gtag.js) - Google Analytics