分页显示

思路:定义四个变量

pageNow:表示第几页,改变了是有用户决定的,因此是变化的

pageCount:共有多少页,该变量使计算出来的

pageSize:每页显示多少记录,有程序指定,也可以由用户指定

rowCount:共有多少条记录

如何确定pageCount

(1)if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

等价于:

pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;

或者

pageCount=(rowCount-1)/pageSize+1;

案例 ManageUsers.java

//从数据库中取出数据
        //到数据库中去验证
                Connection conn = null;
                PreparedStatement ps = null;
                ResultSet rs = null;
                //分页定义变量

                int pageNow=1;//当前页
                //接受用户的pageNow
                String spageNow=request.getParameter("pageNow");
                if(spageNow!=null){
                    pageNow=Integer.parseInt(spageNow);
                }
                int pageSize=3;//指定显示3条记录
                int pageCount=1;//该值是计算出来的
                int rowCount=1;//该共有多少记录,数据库计算出来的
                try{
                    //1加载驱动

                    Class.forName("com.mysql.jdbc.Driver");
                    //2.得到连接

                    conn = DriverManager.getConnection(
                            "jdbc:mysql://localhost:3306/user", "root", "123456");

                    //算出共有多少页
                //1.查询rowcount
                    String sql1 ="select count(*)  from user";
                    ps = conn.prepareStatement(sql1);
                    rs=ps.executeQuery();
                    rs.next();
                    rowCount=rs.getInt(1);
                    pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;

                    //3.创建PrepareSatement
                    //请大家思考,如果条件是pageNow=2,pageSize=3
                    String sql = "select t.*  from (select * from user order by id) t  limit "+(pageNow-1)*pageSize+","+pageSize+"";
                   //执行操作
                    ps = conn.prepareStatement(sql);
                    rs=ps.executeQuery();
                    out.println("<table border=1px bordercolor=green 0 width=500px>");
                    out.println("<tr><th>ID</th><th>用户名</th><th>密码</th></tr>");
                    while(rs.next()){
                        out.println("<tr><td>"+rs.getInt(1)+
                                "</td><td>"+rs.getString(2)+
                                "</td><td>"+rs.getString(3)+
                                "</td></tr>");
                    }
                    out.println("</table>");
                    //显示上一页
                    if(pageNow!=1){
                    out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+(pageNow-1)+"‘>上一页</a>");
                    }
                    //显示分页
                    for(int i=1;i<=pageCount;i++){
                        out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+i+"‘><"+i+"></a>");
                    }
                    //显示上一页
                    if(pageNow!=pageCount){
                    out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+(pageNow+1)+"‘>下一页</a>");
                    }

                    //显示分页信息
                    out.println("&nbsp;&nbsp;&nbsp;当前页"+pageNow+"/总页数"+pageCount+"<br>");
                    out.println("跳转到<input type=‘text‘ id=‘pageNow‘ name=‘pageNow‘><input type=‘button‘ onClick=‘gotoPageNow()‘ value=‘跳‘/>");

                    }catch(Exception e){

        }finally{
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
时间: 2024-12-16 04:23:46

分页显示的相关文章

PHP+Mysql————数据分页显示技术

通常情况下,一个页面加载大量的数据时,数据不可能同时显示出来.这时候,比较常用的方法就是滚动条和分页.看过电子书的孩子都知道,电子书那么多字,一个手机或pad的屏幕是无法全部显示的,开玩笑,一本几兆的书就好几百万字,一下子放到几寸的屏幕上,不得亮瞎你的眼.所以我们都是下滑使文字进行滚动或翻页.这篇博文就用来分享一下php的分页技术. 首先获取数据库中某表的数据,输出到网页上,然后再进行分页显示.一句话就讲明白了,但具体怎么分页的,请看代码. <?php header("content-ty

自制MVC框架CRUD操作、列表、分页显示插件介绍

这里涉及到的操作都是引用自Stephen.DALService数据层.数据访问层实现方式在后文中我会仔细的说明,先说明一下数据操作集成的插件. 1).InsertAttribute 用于插入记录. 状态返回值:假定hashtable传递变量名的是context ,那么返回值可通过context[InsertAttribute.ValueKey]得到,推荐返回的是插入的主键ID值,当然这个是由数据层设定的. 有以下属性可进行设置: 属性名 作用 默认值 选项说明 其它说明 Key 映射路径.格式如

PHP+MySQL分页显示示例分析

Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组成部分,在这里,我们共同来研究分页程序的编写. 一.分页程序的原理 分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page).有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源,在mysql里如果要想取出表内某段特定内容可以使用的 T-

关于会员分页显示

关于conn.php mysql_connect('localhost','root','root') or die("数据库连接失败"+mysql_error()); mysql_select_db('ajax') or die("数据打开失败"+mysql_error()); user.php <?php require_once:"conn.php" $page=$_GET['page']?$_GET['page']:1; $page

数据资料的分页显示,增删改

题目要求: 1,查找数据库资料,分页显示, 2,可以增.删.改, 3,可以按条件查找. main.php 1 <?php 2 include("./init.inc.php"); 3 4 include("../DBDA.class.php"); 5 $db = new DBDA(); 6 7 include("page.class.php"); 8 9 //$_GET["name"]; 10 //$_GET["

15.12DataGridView分页显示

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespa

夺命雷公狗---Redis---6-案例操作2(用户列表页,实现分页显示已经关注功能)

redis.php(公共文件) <?php $redis = new Redis(); $redis -> connect('localhost',6379); $redis -> auth('123456');//因为我修改了配置文件的密码是123456 login.php(登录页面) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>&

新闻实现分页显示

一.数据显示:(大容量数据显示特点) 1.以列表方式显示数据的特点: 优势:数据能够按照指定格式显示,布局清晰,不受信息数量的限制 不足:当数据量较多,需要用户拖动页面才能浏览更多信息 当采用分页技术实现批量数据的页面显示时,就既能显示多条信息,又不需要拖动页面. 二.分页实现的思路: 1.分页显示的步骤: 先确定每页显示的数据数量,然后再确定分页显示所需的总页数,接下来再编写SQL查询语句,实现数据查询,最后在JSP页面中进行分页显示设置. 2.封装page类: 因为分页的数据基本都一样,所以

scroll事件实现监控滚动条并分页显示示例(zepto.js)

scroll事件实现监控滚动条并分页显示示例(zepto.js  ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页底部自动加载下一页并发加载埋点. 实现:首先理解三个概念,分别是contentH,viewH,scrollTop. contentH:即所要滑动的元素内容的高度,包括可见部分以及滚动条下面的不可见部分. ViewH:即我们看到的这个DIV的高度,不包括可见部分也不包括滚动条下面的不可见部分. scr

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库