码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-08-16 17:24:43      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:ret   cep   try   png   链接   number   问题   解决办法   exe   

问题分析:

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

 

解决办法: 

  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;    
    }

 未完待续。。。。

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

标签:ret   cep   try   png   链接   number   问题   解决办法   exe   

原文地址:http://www.cnblogs.com/alternative/p/7373326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!