当数据过多时,一页之内是无法显示的,因此需要进行分页显示。
(一)分页技术实现:
物理分页:
-
在数据库执行查询时(实现分页查询),查询需要的数据—-依赖数据库的SQL语句
-
在sql查询时,从数据库只检索分页需要的数据
- 通常不同的数据库有着不同的物理分页语句
- 物理分页:Mysql/SQL
Server/Oracle,每种数据数的写法是不同的
- mysql物理分页,采用limit关键字,SQL
Server采用top,Oracle采用rowNum
-
例如,检索11-20条:注意,索引从0开始,第一个10代表第11条,上述语句的含义是查询第11条到第20条
逻辑分页:
- 先查询所有数据到内存,再从内存截取需要的数据—-采用程序内部逻辑(先都查出来,再进行选择)
- 在sql查询时,先从数据库检索出所有数据的结果集
- 在程序内,通过逻辑语句获得分页需要的数据
- 例如,检索11-20条:
- ResultSet是JDBC
API中封装的查询结果集对象,通过该对象可以实现数据的分页显示。武汉英语培训班通过ResultSet的光标实现分页,优点是在各种数据库上通用,缺点是占用大量资源,不适合数据量大的情况。(由于ResultSet分页存在性能方面的缺陷,在实际开发中,很多情况都是采用数据库提供的分页机制来实现分页查询功能)
(二)实例
通过MySQL数据库提供的分页机制,实现商品信息的分页查询功能,将分页数据显示在JSP页面
(1)JavaBean:用于封装商品信息
由于每页记录数一般不会修改,因此将其定义为final类型(静态的final类型变量,通常情况下我们大写)。
按照DAO模式,接下来我们分别编写数据层和业务层
(2)创建名称为BookDao的类,用于封装数据库相关操作。
(3)创建FindServlet类,实现获取分页查询结果及构造分页条对象。其中获取分页查询结果,通过调用BookDao类中的find()方法,雅思作文思路并传递所要查询的页码就可以获取;分页条对象是JSP页面中的分页条,用于显示商品信息的页码,程序中主要通过创建页码的超链接,然后组合字符串进行构造:
(4)web层进行显示
主界面:
商品显示界面: