分页(将数据库中的信息分页显示到网页)

问题分析:

  当我们想检索数据库中的信息并将其显示到网页上时,如果数据库中的信息过多时 。一方面会使数据库开销非常大,降低性能;另一方面在一张页面上显示过多数据也会降低用户体验。

解决办法: 

  1.由于在分页之后每一页显示的信息不再仅仅是数据空中的数据而是类似于下图:

  所以我们需要创建一个page类:

    package com.neuedu.manage.bean;

    import java.util.List;

    public class page <T>{
        private List<T> data;//数据库查询出的数据
        private int totalRecord;//总记录数,数据库查询

        private int pageNumber;//当前页码
        private int pageSize;//每页的记录数

        private String path;//jsp页面链接所要跳转的地址

    //  private int index;    //当前索引,计算得到
    //  private int totalPage;//总页数 计算得到
       } 

  其中我们为前5个变量创建GET和SET方法;由于后两个变量是计算得到的,只为他们创建GET方法:

      public int getIndex() {
            /**
             * 当前索引值,计算得到的
             */
            return (getPageNumber()-1)*pageSize;
        }
  
        public int getTotalPage() {
            /**
             * 总页数
             */
            if(totalRecord%pageSize==0){
                return totalRecord/pageSize;
            }
            return (totalRecord/pageSize +1);
        }

  2.dao层代码:根据当前索引值和每页的记录数将结果查询出来,然后将其封装成user对象并保存到Student类的LIst链表中,将其返回。

    public List<Student> getLimitStuList(int index, int pageSize) {
        JDBCUtil jdbcUtil=new JDBCUtil();
        Connection con = jdbcUtil.getConnection();
        PreparedStatement pst=null;
        ResultSet rSet=null;
        List<Student>list= new ArrayList<Student>();
        String sql="SELECT * FROM students limit ?,?";
        try {
            pst = con.prepareStatement(sql);
            pst.setInt(1, index);
            pst.setInt(2, pageSize);
            rSet = pst.executeQuery();
            while(rSet.next())
            {
                int id=rSet.getInt("id");
                String name=rSet.getString("name");
                String school=rSet.getString("school");
                double score=rSet.getDouble("score");
                list.add(new Student(id, name, school, score));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            JDBCUtil.close(con, pst, rSet);
        }
        System.out.println(list);
        return list;
    }

未完待续。。。。

时间: 2024-08-08 06:18:31

分页(将数据库中的信息分页显示到网页)的相关文章

分页显示数据----前端(将数据库中的信息分页显示到网页)

在上篇文章中,我们已经完成了分页显示的后台处理,现在进行前端的处理. 期望显示结果: 由于对于不同的项目.不同的数据库数据部分不同,所以我们将分页部分提取出来,单独建立jsp页面: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="c"

网络采集软件核心技术剖析系列(6)---将任意博主的全部博文下载到SQLite数据库中并通过Webbrower显示(将之前的内容综合到一起)

一 本系列随笔目录及本节代码下载 开发环境:VS2008 本节源码位置:https://github.com/songboriceboy/GatherAllStoreInDB 源码下载办法:安装SVN客户端(本文最后提供下载地址),然后checkout以下的地址:https://github.com/songboriceboy/GatherAllStoreInDB 系列文章提纲拟定如下: 1.如何使用C#语言获取博客园某个博主的全部随笔链接及标题:2.如何使用C#语言获得博文的内容:3.使用C#

获取Oracle数据库中字段信息

select t.DATA_PRECISION,t.DATA_SCALE,t.DATA_LENGTH,t.DATA_TYPE,t.COLUMN_NAME, t.NULLABLE,t.DATA_DEFAULT,c.COMMENTS from all_tab_columns t left join all_col_comments c on t.table_name = c.table_name and t.column_name = c.column_name where t.table_name

从配置文件或数据库中读取信息并缓存

在项目中将一些常用的不变的信息可以缓存起来,这样可以减少内存的使用率,提高性能.比如说就数据库连接的相关信息等,可以用单例模式第一次进行连接的时候将数据库连接的相关信息缓存再单例对象中. 首先建个.properties文件,存放数据库连接信息,内容如下: #数据库配置 driver_class = oracle.jdbc.driver.OracleDriver url= jdbc:oracle:thin:@192.168.20.188:1521:orcl username = qwszpt pa

常用数据库中,实现分页功能的查询语句;

1.Mysql数据库 select * from 表名  limit  (pagenum-1)*pagesize, pagesize; pagenum是当前第几页,pagesize是每页的条数. 那么(pagenum-1)*pagesize就表示翻过 这些条数,接着显示 pagesize  条. 实例如下: package com.inba.maya.DBConnection; import java.util.*; import java.sql.*; import com.inba.maya

将数据库中的数据横向显示

name city money 张三 北京 100 张三 上海 200 张三 广州 300 面试题:test表中有以上数据,使用SQL查询出下列效果. name 北京 上海 广州 张三 100 200 300 将数据库字段中的数据横向显示,考察的是对于case when判断语句的使用,下列代码为答案. select name, max(case city when "北京" then money end) as "北京", max(case city when &q

Swing中使用JTable动态获取数据库中的数据并显示

笔者注:本文供新手学习使用,若有一定基础,可以直接看3! 1.创建数据库: /* Navicat MySQL Data Transfer Source Server : aa Source Server Version : 50519 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50519 File Encoding : 65001 D

Java 从数据库中查找信息导入Excel表格中

前端js function Excel (){ //ajax请求 $.ajax({ url : "outPutAboutShopInfo", type : "post", dataType : "json", data:{ "basicShop.shopId" : shopId, "basicShop.shopMemo" : stringType //不方便增加字段所以使用门店的一个"备注&quo

数据库基础#3:数据库中的数据?

原文链接:https://www.scarydba.com/2017/06/20/database-fundamentals-3-whats-database/ 转载自BOOK – "EXECUTION PLANS" CODE   AZURE DATA PLATFORM INSTRUCTORS 值得注意的是,很多人永远不需要创建自己的数据库. 您也许永远不会创建自己的表或其他数据结构. 您只能运行备份和恢复并操纵系统上的安全性,并让应用程序为您安装数据库. 这是完全可以理解的,完全符合