数据库分页Java实现==.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档