`

java仿谷歌分页

阅读更多
    昨天写了几个分页后,今天仿写谷歌的分页!其中遇到了算法和对象封装的问题,其中重要的是算法的选择。

下面分享一下我的主要代码:

javaBean中的Student和Pagelei。

student类:

Code:
import java.io.Serializable;   
  
public class Student implements Serializable {   
  
    /**  
     *   
     */  
    private static final long serialVersionUID = 1L;   
       
    //成员属性   
    private int id;  //递增的id序列   
    private String name;//名称   
    private int age;//年龄   
    private String email;//邮箱   
       
       
    public Student(){   
           
    }   
       
    public Student(String name,int age,String email){   
        this.name=name;   
        this.age=age;   
        this.email=email;   
    }   
  
    public int getId() {   
        return id;   
    }   
  
    public void setId(int id) {   
        this.id = id;   
    }   
  
    public String getName() {   
        return name;   
    }   
  
    public void setName(String name) {   
        this.name = name;   
    }   
  
    public int getAge() {   
        return age;   
    }   
  
    public void setAge(int age) {   
        this.age = age;   
    }   
  
    public String getEmail() {   
        return email;   
    }   
  
    public void setEmail(String email) {   
        this.email = email;   
    }   
  
       
       
}  

Page类:

Code:
import java.util.List;   
  
public class Page {   
       
    private int nowpage;//当前页   
    private int countrecord;//总记录数   
    private int countpage;//总页数   
       
       
    public static final int PAGESIZE=5;//每页显示的记录数   
       
       
    private int sumindex =6;//索引的sum值   
    private int startindex = 1;//开始的索引值   
    private int endindex = 3;//结束的索引值   
       
       
    private List allentities;   
       
    public Page(){   
           
    }   
       
    public void index(int nowpage){ //可变   
        /*计算出索引的位置  
         *   
         * */  
        this.endindex = nowpage+2;   
        if(this.endindex-5>0){   
            if(this.endindex <= this.countpage){   
                this.startindex = this.endindex-5;   
            }else{   
                this.endindex = this.countpage;   
                this.startindex = this.endindex-5;   
            }   
        }else{   
            this.startindex = 1;   
        }   
    }   
       
    public int getNowpage() {   
        return nowpage;   
    }   
    public void setNowpage(int nowpage) {   
        this.nowpage = nowpage;   
    }   
    public int getCountrecord() {   
        return countrecord;   
    }   
    public void setCountrecord(int countrecord) {   
        this.countrecord = countrecord;   
    }   
    public int getCountpage() {   
        return countpage;   
    }   
    public void setCountpage(int countpage) {   
        this.countpage = countpage;   
    }   
    public int getStartindex() {   
        return startindex;   
    }   
    public void setStartindex(int startindex) {   
        this.startindex = startindex;   
    }   
    public int getEndindex() {   
        return endindex;   
    }   
    public void setEndindex(int endindex) {   
        this.endindex = endindex;   
    }   
    public List getAllentities() {   
        return allentities;   
    }   
    public void setAllentities(List allentities) {   
        this.allentities = allentities;   
    }   
  
    public int getSumindex() {   
        return sumindex;   
    }   
  
    public void setSumindex(int sumindex) {   
        this.sumindex = sumindex;   
    }   
  
}  

逻辑处理类:

Code:
public class ListStusServlet extends HttpServlet {   
  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)   
            throws ServletException, IOException {   
        this.doPost(req, resp);   
    }   
  
    @Override  
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)   
            throws ServletException, IOException {   
       //1.设置编码   
        req.setCharacterEncoding("utf8");   
           
  
           
       //2.获取当前页   
        Page stupage = new Page();   
        int nowpage=1;   
        String npage = req.getParameter("nowpage");   
           
        if(npage!=null){   
            nowpage = Integer.valueOf(npage);   
        }   
           
           
           
        //3、创建sevice服务操作对象   
        StudentServiceImpl ssi = new StudentServiceImpl();   
           
        int lastpage = ssi.getCountPage();   
           
           
       
        List<Student> allentities = ssi.getNowPageInfo(nowpage);   
           
        stupage.setCountpage(lastpage);   
        stupage.setNowpage(nowpage); //存入到page中   
        stupage.setAllentities(allentities);//将结果集放进page中   
        stupage.index(nowpage);   
        System.out.println("页码是:"+nowpage+"-start:"+stupage.getStartindex()+" / end:"+stupage.getEndindex());   
        req.setAttribute("stupage", stupage);   
           
           
        req.getRequestDispatcher("liststs.jsp").forward(req, resp);   
    }   
  
}  

操作类:

Code:
public class StudentDaoImpl implements StudentDao {   
  
    // 数据库操作的对象   
    private Connection conn;   
    private PreparedStatement pstmt;   
    private ResultSet rs;   
    // 每页显示的记录数   
    private static final int PAGESIZE = 5;   
  
    // 获取总页数   
    public int getCountPage() {   
        return getCountRecord() % PAGESIZE == 0 ? getCountRecord() / PAGESIZE   
                : getCountRecord() / PAGESIZE + 1;   
    }   
  
    // 获取总记录   
    public int getCountRecord() {   
        // 1、定义返回结果   
        int countrecord = 0;   
        // 2、获取数据库连接对象   
        conn = DBConn.getConn();   
        // 3、创建预处理的sql语句   
        String sql = "select count(*) from student";   
  
        try {   
            // 4、根据预处理的sql语句创建预处理的操作对象   
            pstmt = conn.prepareStatement(sql);   
            // 5、查询的时候 直接执行   
            rs = pstmt.executeQuery();   
            // 6、判断   
            if (rs.next()) {   
                countrecord = rs.getInt(1);   
            }   
        } catch (SQLException e) {   
            e.printStackTrace();   
        } finally {   
            DBConn.close(rs, pstmt);   
        }   
        return countrecord;   
    }   
  
    // 获取当前页信息   
    public List<Student> getNowPageInfo(int nowpage) {   
        //1、定义返回结果变量   
        List<Student> allentities = new ArrayList<Student>();   
        //2、获取连接对象   
        conn = DBConn.getConn();   
         try {   
             //3、根据预处理的sql语句创建预处理的操作对象   
            pstmt = conn.prepareStatement("select id,name,age,email from student limit ?,?");   
             //4、定义下标变量 并赋值   
            int index = 1;   
            pstmt.setInt(index++, (nowpage-1)*PAGESIZE);   
            pstmt.setInt(index++, PAGESIZE);   
            //5、查询的时候 直接执行   
            rs = pstmt.executeQuery();   
            //判断   
            while(rs.next()){   
                //创建实体bean对象   
                Student entity = new Student();   
                entity.setId(rs.getInt("id"));   
                entity.setName(rs.getString("name"));   
                entity.setAge(rs.getInt("age"));   
                entity.setEmail(rs.getString("email"));   
                //添加到集合中   
                allentities.add(entity);   
            }   
         } catch (SQLException e) {   
            e.printStackTrace();   
        }finally{   
            DBConn.close(rs, pstmt);   
        }   
        return allentities;   
    }   
  
    public static void main(String[] args) {   
        StudentDaoImpl sdi = new StudentDaoImpl();   
  
/*      int countrecord = sdi.getCountRecord();  
 
        System.out.println(countrecord);  
          
        System.out.println(sdi.getCountPage());*/  
           
        List<Student> allentities = sdi.getNowPageInfo(7);   
           
        for(Student entity : allentities){   
            System.out.println(entity.getName());   
        }   
           
           
    }   
  
}  

总结:今天的感觉是:学习很重要,要多动脑,多练习!
分享到:
评论

相关推荐

    仿谷歌分页,仿谷歌分页,分页,最简单的分页

    "仿谷歌分页"指的是借鉴谷歌搜索引擎的分页样式和逻辑,实现高效且用户体验良好的分页功能。本篇将深入探讨如何实现这样的分页机制。 首先,我们需要理解分页的基本原理。分页的核心在于限制一次加载的数据量,避免...

    仿google分页完整代码

    本案例提供的“仿Google分页完整代码”就是一个PHP实现的分页解决方案,适用于各种需要分页显示数据的场景。 首先,我们来看`index.php`,这个文件通常是网页的入口点,它会包含其他必要的PHP脚本和HTML结构。在这...

    java仿GOOGLE数字分页

    "java仿GOOGLE数字分页"是针对Java后端开发的一种技术实现,旨在模仿谷歌搜索引擎的分页样式,提供用户友好的分页体验。在这个项目中,开发者不仅关注功能实现,还注重了界面的美观性和用户体验。 首先,我们要理解...

    jsp仿百度、谷歌分页解决分页太多,始终显示一部分的页码

    本文将深入探讨如何使用JavaScript和jQuery实现一个类似百度、谷歌的智能分页解决方案,解决分页数量过多导致用户界面拥挤的问题。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:每页显示的条目...

    java 模仿google的分页代码

    Google的分页设计简洁高效,本示例将模仿其风格,教你如何在Java和JSP环境中实现类似的功能。 首先,我们需要理解分页的基本概念。分页通常包括页码、每页显示条目数、跳转页数等元素。用户可以通过点击页码或使用...

    不错的Java经典分页

    首先,"仿谷歌分页"和"放百度分页"这两个标签暗示了我们可能会参考这两种著名搜索引擎的分页设计。谷歌和百度的分页通常简洁明了,不仅提供上一页、下一页的导航,还可能包含跳转至特定页码的功能。这种设计使得用户...

    java仿百度假分页代码实现的详解

    本文将详细介绍如何在Java中实现仿百度假分页。 首先,我们来看一下服务层(Service Layer)的代码实现。在这个示例中,我们假设有一个名为`entityPOMapper`的Mapper接口,用于与数据库交互。分页的核心逻辑在于...

    JAVA分页完美解决方案修订版

    JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,浏览、增加、删除、修改、查看、搜索都可以回到原来的页码,源码已经上传CSDN,值得下载! 我的方案是用两个TAG完成分页显示数据...

    java数字分页

    7. **Google分页**:可能指的是Google搜索结果页的分页方式,它通常包含“上一页”、“下一页”按钮以及当前页码和总页数的显示,还可能有“跳至页码”功能。模仿Google的分页风格,可以提供直观且易于使用的分页...

    JAVA分页完美解决方案

    JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,源码已经上传CSDN,值得下载! 我的方案是用两个TAG完成分页显示数据和页码,一个TAG(displaytag)专门显示数据,一个TAG...

    含分页核心源代码 struts2.1 + hibernate3.3 +spring2.5 + 仿Google数字分页

    这是一个基于SSH(Struts2、Hibernate3.3和Spring2.5)框架的项目,其中包含了一个实现仿Google数字分页功能的核心源代码。在这个项目中,开发者利用这些技术来构建一个具有高效分页能力的Web应用,以提高用户体验并...

    JSP实现类似百度,google的分页

    在这个主题中,我们将深入探讨如何使用Java Server Pages(JSP)技术来实现类似百度或Google的高效、美观的分页功能。这通常涉及到与后端Servlet的交互,以获取并展示所需的数据。 首先,我们需要了解JSP的基本原理...

    Java分页小例子

    此外,我们还可以使用第三方库,如Apache的Commons Collections或者Google的Guava,它们提供了分页工具类,可以帮助简化分页处理。 总的来说,Java中实现分页的方法多样,可以根据具体项目需求和技术栈选择合适的...

    java高仿某东商城app.rar

    4. **Jetpack组件**: Google推出的Android Jetpack是一系列可组合的库,用于简化开发过程,如Room用于数据库操作,LiveData和ViewModel用于处理UI数据,Paging库用于分页加载,Navigation组件则帮助管理应用内的导航...

    Java代码分页

    对于Android开发,Google的Paging库可以帮助我们轻松实现内存优化的分页加载。Paging3是Paging库的最新版本,它提供了更简单和高效的API。 除了上述方法,还有一些其他的策略,比如使用缓存技术(如Redis)来缓存...

    JSP实现百度谷歌分页页码功能源代码

    本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...

    jsp,java实现谷歌地图,查询地图功能

    本项目专注于使用JSP和Java来集成并实现谷歌地图的查询功能。下面将详细阐述这一技术实现的关键知识点。 1. **JSP基础**: - JSP生命周期:包括翻译、初始化、服务和销毁四个阶段,开发者主要在服务阶段编写业务...

    基于spring3注解的google分页

    首先,理解Google分页的基本概念是至关重要的。它通常包含当前页数、每页显示的记录数以及前进和后退按钮,以便用户能够轻松浏览大量数据。在Spring MVC中,我们可以使用`@RequestMapping`注解来处理HTTP请求,并...

Global site tag (gtag.js) - Google Analytics