- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数据库分页Java实现
数据库分页Java实现
MySQL分页
主要是MySQL数据库内置LIMIT函数
注意添加mysql的JAR包mysql-connector-java-5.1.13-bin.jar
select*fromtableLIMIT5,10; //检索记录行6-15
在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:
select*fromcontentorderbyiddesclimit10000,10
一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。此时,我们可以通过2种方式:
一,子查询的分页方式来提高分页效率
select*fromcontentwhereid=(selectidfromcontentorderby
iddescLIMIT.($1)*$pagesize.,1)orderbyiddescLIMIT$pagesize;
为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。
经过飘易的实测,使用子查询的分页方式的效率比纯LIMIT提高了14-20倍!
二,JOIN分页方式
select*fromcontentast1join(selectidfromcontentorderby
iddescLIMIT.($1)*$pagesize.,1)ast2wheret1.id=t2.idorderbyt1.iddescLIMIT$pagesize;
经过我的测试,join分页和子查询分页的效率基本在一个等级上,消耗的时间也基本一致。
MySQL分页Java实现
%@pagelanguage=javaimport=java.util.*,java.sql.*pageEncoding=gbk%
!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//EN
html
head
titleMySQL分页/title
/head
body
table
tr
td用户名/td
td所在城市/td
td职业/td
/tr
%
//加载驱动Class.forName(com.mysql.jdbc.Driver);
//得到连接
Connectionct=DriverManager.getConnection(jdbc:mysql://localhost:3306/tour,root,root);
Statementsm=ct.createStatement();
//接收pageNow参数
Strings_pageNow=request.getParameter(pageNow);intpageNow=1;
if(s_pageNow!=null){
pageNow=Integer.parseInt(s_pageNow);
}
//查询总页数
intpageCount=0;//当前为第几页intpageSize=3;//每页显示几条记录introwCount=0;//总共有多少条记录
ResultSetrs=sm.executeQuery(selectcount(*)fromusers);if(rs.next()){
rowCount=rs.getInt(1);
if(rowCount%pageSize==0){pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
}
rs=sm.executeQuery(select*fromuserslimit+((pageNow-1)*pageSize
+1)+,+pageNow*pageSize+);
while(rs.next()){out.println(tr);
out.println(td+rs.getString(2)+/td);out.println(td+rs.getString(5)+/td);out.println(td+rs.getString(6)+/td);out.println(/tr);
}
out.p
您可能关注的文档
- 数学必修一讲义版.docx
- 数学必修五模块测试A卷.docx
- 数学必修二第二章测试题版.docx
- 数学北师大版八年级下册分式的基本性质教学设计.docx
- 数学北师大版八年级下册分式的基本性质教案.docx
- 数学北师大版八年级下册51认识分式——练习题.docx
- 数学八年级上册知识点汇总及常考题型.docx
- 数学八年级上册因式分解练习题及答案.docx
- 数学八年级二次根式练习题.docx
- 数图形练习题版.docx
- Unit 6 素能测评教学设计 2024-2025学年译林版(2024)七年级英语上册 (江苏地区).docx
- 2024-2025学年小学生健康情绪教育实践设计.docx
- 高中语文选择性必修中册13.2《致大海》教学设计——和中国诗词的对比阅读.docx
- Module 2 Unit 8 Detective stories Reading教学设计2024-2025学年牛津译林版英语九年级上册.docx
- 《习作:我做了一项小实验》教学设计-2023-2024学年三年级下册语文统编版.docx
- 六年级语文上册18古诗三首《浪淘沙(其一)》教学设计.docx
- 比(教学设计)-2024-2025学年六年级上册数学人教版.docx
- 2024-2025学年校园精彩故事与反霸凌教育教学设计.docx
- 人美8下 10传统民居的艺术魅力 教案.docx
- 2024年八年级历史下册材料题答题总结教学设计.docx
文档评论(0)