在进行页面显示时,如果从数据库中获取的内容过多,通常不会一次把所有的内容都显示在页面中,而是分为多页展示,那么这就是分页

  • 在整个分页过程中,怎么才能根据需要获取到对应页的数据呢?
  • 分页至少需要以下因素:
    • 处理分页请求的服务器端程序,如Servlet或者JSP
    • 当前要展示第几页,也就是页码需要传递给服务器程序
    • 当前页面最多要展示多少条数据,传递给服务器程序
    • 服务器端程序获取总记录数、总页数以及当前页面要展示的数据返回给客户端
  • 根据操作方式的不同,常见的Java分页有如下两类:
    • 一次将所有的结果查询出来,然后根据页面请求显示指定的记录行,也可以称之为内存分页
    • 根据页面请求一次只从数据库中读取一页结果,然后在页面显示该页,也可以称之为SQL分页
  • 内存分页技术分析:
    • 一次性将所有数据获取放置到内存中,如果数据量较大,那么第一次分页请求时执行效率较差,第二次之后的分页请求因为是从内存中获取数据所以执行效率高,但是资源占用率也会很高。
    • 因为数据一次性加载至内存,当其他用户对数据库中数据进行修改时,会导致数据库中数据和内存中数据不一致,出现脏数据。
  • SQL分页技术分析:
    • 根据页面请求的页码不同,从数据库中取出相应条数的数据
    • 每次请求都需要查询一次数据库,获取相应的内容,每次均从数据库中查询少量数据,内存等资源利用率提升。
    • SQL分页技术需要数据库管理系统的支持,数据库管理系统提供对应的分页查询语句才可以使用SQL分页技术
  • 不同的数据库的分页查询语句不同,MySQL的分页语句为:
    • select * from table_name limit 开始位置 , 获取的条数
    • 如 select * from emp where sal>1000 limit 10,20;该语句取出第11行到第30行薪资大于1000的员工信息,

自定义分页的操作:

servlet:

JSP页面:

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐