JSP与javabean与jdbc的综合应用.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JSP与Javabean综合应用 目标 掌握 实例应用:数据库分页技术的实现 项目实践 体验项目——网络通讯录 本章我们要制作一个网络通讯录,本项目有五个模块组成,分别是显示成员、添加成员、修改成员、删除成员和新用户注册。 实现数据库查询分页一般有以下几种方式: 使用HttpSession或有状态bean实现缓存 使用Vector实现缓存 使用ResultSet实现缓存 使用数据库自身的功能实现 Oracle ,MySql 数据库应用 --分页实现 使用HttpSession实现分页 将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。 两个主要的缺点: 用户可能看到的是过期数据; 如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。 数据库应用 --分页实现 使用Vector实现缓存 先将所有记录都select出来,然后将ResultSet中的数据都get出来,存入Vector等集合类中,再根据所需分页的大小,页数,定位到相应的位置,读取数据 缺点 代码的效率不高 程序结构和使用的方便性上很糟糕的。比如,这种做法支持的字段类型有限,int,double,String类型还比较好处理,如果碰到Blob,Text等类型,实现起来就很麻烦了 数据库应用 --分页实现 使用ResultSet实现缓存 每次翻页都查询一次数据库,从ResultSet中只取出一页数据 该结果集中的指针可以随意移动 实现分页需要的参数 int intPageSize; //一页显示的记录数 int intRowCount; //记录总数 int intPageCount; //总页数 int intPage; //待显示页码 数据库应用 --分页实现 总的纪录数: sqlRst.last( ); //光标在最后一行 intRowCount = sqlRst.getRow( ); //获得当前行号 记算总页数 intPageCount = (int) Math.ceil ( (float) intRowCount / (float) intPageSize ); 为了防止除法结果为小数的情况,先将总页码和每页显示的纪录数都转化为小数形式,那么除的结果也为小数。 通过Math.ceil(float)方法将该小数转化为大于等于该小数的最小整数,这个就是最终的总页数。 数据库应用 --分页实现 数据库应用 --分页实现 定位即将显示的页码中第一个纪录位置: sqlRst.absolute( (int1) * intPageSize + 1 ); 通过绝对定位来制定结果集中指针的位置 结果集中的指针下标从1开始 每页显示4条纪录 intPageSize = 4 要显示的页码 该页第一条纪录下标 该页最后一条记录的下表 计算公式 1 1 4 (1-1)*4+1 =1 2 5 8 (2-1)*4+1 =5 3 9 12 (3-1)*4+1 =9 ingPage (int1) * intPageSize + 1 实现步骤: 根据条件查询所有的纪录 使用rs.last()将指针移到最后一行,并应rs.getRow()获得总计录条数 根据计算得到总的页数 对于每页的显示再使用rs.absolute()定位到本页起始记录 使用rs.next()和每页显示的纪录条数来具体的显示纪录 例子:Pagination.jsp 数据库应用 --分页实现 缺点: 这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。 重用性不好 改进方法: 将在JSP中实现的数据库连接方法放到javabean中去实现,这样可实现代码的重用。 数据库应用 --分页实现 例子:PageableBean.jsp 看过上面三种实现方法后,对新的分页机制有了一个目标, 不与具体数据库相关; 尽可能做到代码重用; 尽可能与原JDBC接口的使用方法保持一致; 尽可能高的效率。 数据库应用 --分页实现 体验项目——网络通讯录 本章我们要制作一个网络通讯录,本项目有五个模块组成,分别是显示成员、添加成员、修改成员、删除成员和新用户注册。 整体设计 首先我们分析一下这个网络通讯录需要哪些功能: 1.用户登录页,实现用户的登录功能。 2.显示与登录用户相对应的通讯记录页面。 3.实现向通讯录中添加信息的功能。 4.实现修改信息的功能。

文档评论(0)

浪漫唯美-文档菜鸟 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档