- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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.实现修改信息的功能。
您可能关注的文档
- 【优秀】初中英语句子成分分析.ppt
- 01有关健康和食物的词汇.ppt
- 1.4蛋白质工程的崛起(精制).ppt
- 2-6的乘法口诀练习.ppt
- 4康复护理工作内容.ppt
- 5.邵明—中国脑卒中康复治疗指南(2017-10-26).ppt
- BMW入职(创新科技1).ppt
- Book7Unit1 难句分析及词块.ppt
- C&C++跨平台编码教程(概论).ppt
- C2练习册详解《全》.ppt
- 内容科普利控制20 dan roadcantonma accelnet micro panel.pdf
- 雷克萨斯rx330维修手册.pdf
- 节函数概念教学讲稿.pdf
- 页码安全数据表期0o15236橙油orange brasil oil conc 20 v01dg3 sds.pdf
- 半导体元件工业2001on sn74ls298.pdf
- 文稿成果文案dynamics eventing ax2012.pdf
- 艾默生服务数据表无线现场回程wpn service ds field backhaulWPN.pdf
- (PEP)六年级英语下册教学课件Recycle Day 7 & Day 8 第4课时.pptx
- 如何收购新三板公司控股权?【会计实务文库首发】.pdf
- Proe发展现状及其应用前景(精品文档)-共10页.pdf
1亿VIP精品文档
相关文档
最近下载
- 2022《格力电器的财务比率分析报告》.docx
- 【名师公开课】人教版二年级下册第七单元《用估算解决问题》课堂实录逐字稿及教学反思.docx
- 儿科医疗质量控制指标(2020年版).docx
- 部编版小学道德与法治四年级下册《生活离不开他们》第二课时“感谢他们的劳动”教学设计.docx
- 2022年摩托车修理工初级模拟试题及答案(26).doc
- 中信证券2024-新发展格局系列报告之十二—公用事业价格改革的路径、影响、机会.pdf
- ABB工业传动中压交流传动 ACS580MV(200-6300kW, 3.3-11kV)硬件手册 安装和操作手册.pdf
- 2021年摩托车修理工中级模拟试题及答案卷26.doc VIP
- 2023-2024学年高二上学期物理期末复习测试卷.docx
- 京东方A:2023年年度报告.PDF
文档评论(0)