资源描述:
《数据库的典型应用JSP分页技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13讲:数据库的典型应用5.6数据库的典型应用—数据分页技术本讲要点与教学目标【教学要点】(1)数据分页显示业务流程(2)数据分页显示的实现方法与技巧【教学目标】理解数据分页显示的重要性,了解常用数据分页显示的一般业务流程,掌握数据分页显示的实现方法与技巧。5.6数据库的典型应用—分页问题分页问题假如在一个页面中显示的信息有上千条甚至上万条的时候,用户将是无法忍受的。页面太长、显示太慢。这就需要我们把要显示的信息进行分页显示。分页应用分页技术无所不在:论坛、博客、新闻5.6数据库的典型应用实现数据分页的
2、一般思路【效果要求】1、只显示当前页的数据2、能进行分页导航:首页、下一页、上一页、尾页【一般思路】第一,查询所有数据到ResultSet对象中;第二,计算分页信息(页大小、总行数、总页数、当前页);第三,读取指定页的数据并输出;第四,实现分页导航。5.6数据库的典型应用分页中的关键技术如何计算总行数?如何计算总页数?如何传递页码与获取页吗?如何读取第n页的数据?如何实现分页导航?5.6数据库的典型应用分页中的关键技术如何计算总行数?1、创建Statement对象时,指定结果集(ResultSet)类型,
3、使ResultSet对象的记录指针可以随机定位。conn.prepareStatement("Sql语句",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);2、ResultSet对象提供了一系列与记录指针相关的方法:(1)booleanlast();//将记录指针指向
4、最后一行(2)booleanabsolute(introw);//将记录指针指向指定行(3)intgetRow();//获取当前行的行号【总行数=最后一行的行号】5.6数据库的典型应用分页中的关键技术如何计算总页数?总页数=(总行数%页大小==0)?总行数/页大小:总行数/页大小+1如何传递页码与获取页码?通过url地址参数传递,一般格式:url?page=1在url中获取页码:Stringstr=request.getParameter("page");处理特殊情况:没有传递参数、页码超范围如何读取第n
5、页的数据?指针定位:(n-1)*页大小+1,循环读取1页数据并输出(注意:最后1页的特殊情况)。5.6数据库的典型应用分页中的关键技术如何实现分页导航?如果:当前页为currentPage,总页数为totalPage首页">下一页">上一页尾页6、>注意:如果当前页为第1页,则不显示“首页”和“上一页”如果当前页为最后一页,则不显示“下一页”和“尾页”案例1:商品分页显示学习JSP中对查询数据进行分页的方法。案例学习目标数据的获取、页面大小的设置、分页操作的处理。案例知识要点编写product.jsp文件,实现分页显示商品信息,要求每页显示10行数据。案例要求<%Connectionconn=null;ResultSetrsAll=null;PreparedStatementstmt=null;try{//--开始创建连接--Class.forNa
7、me("com.microsoft.sqlserver.jdbc.SQLServerDriver");StringstrConn="jdbc:sqlserver://localhost:1433;DatabaseName=ShopSystem";conn=DriverManager.getConnection(strConn,"sa","lucky");//--开始查询所有数据--request.setCharacterEncoding("gb18030");StringstrSql="SELECTp_i
8、d,p_type,p_name,p_price,p_quantity,p_timeFROMproduct";stmt=conn.prepareStatement(strSql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rsAll=stmt.executeQuery();%>案例1:商品分页显示product1.jsp案例1:商品分页显示