java 怎样分页存储数据到mysql数据库?

我从一个网站上面获取到的数据存到本地数据库,并分页显示到jsp页面上,但获取到的数据太多,要显示到页面上就会等好久,怎么弄个分页存储呢,就是先存储几条数据,显示在页面上,... 我从一个网站上面获取到的数据存到本地数据库,并分页显示到jsp页面上,但获取到的数据太多,要显示到页面上就会等好久,怎么弄个分页存储呢,就是先存储几条数据,显示在页面上,等点下一页的时候再存储几条数据,这个要怎么实现呢? 展开
 我来答
alexxiyang
2013-12-26 · TA获得超过252个赞
知道答主
回答量:119
采纳率:0%
帮助的人:62.4万
展开全部

根据我的理解你的程序的主要作用是:

  • 抓取另外一个网站的页面内容

  • 解析后存储到自己的数据库里面

  • 然后再在页面上显示刚刚抓取的数据


如果我的理解正确的话,你要做的是一个网站数据采集器,那么

分页存储的方法有两种:

方案A

  1. 在数据库找个表存储当前进行到的序号,比如现在网站上有1000个数据,有个字段可以标定数据的序号,就是网站文章的id(这个数据根据业务的不同要自己去寻找)

  2. 然后你读取对方网站的时候先把网站的html读取到java内存中,然后解析这些html,读出一个list列表

  3. 在对list列表遍历的时候,把文章的id跟数据库中存储的文章id比对,如果发现是已经存储过的文章id就不存储,如果是没存储过的再存储

  4. 在遍历的过程中记录下当前存储的文章数量,当达到一个指定的数量(你可以自己定义,比如是100个文章)的时候停止存储,并退出循环,然后把当前遍历到的文章id存储到数据库中

  5. 这样就实现了每次只存储指定的数量(比如100个文章)


方案B

  1. 如果你要抓取的网站也是分页的,那么你就每次抓取一页,并把当前抓取到的页数记录到数据库中

  2. 通过观察得出对方网站的不同页数据的url规律,比如发现他们网站第x页的数据总是根据 域名/具体的页面?page=x ,那么下次抓取的时候,从数据库读出上次抓取的页面数,然后加1

  3. 拼出新的页面的url,然后访问,再进行抓取

  4. 这样就实现了每次只存储一页数据


分页显示的方法:

使用mysql的 limit 语法:limit x,y ,代表从第x行开始读取 y 行数据

假定当前要翻到第page页,每页有row行数据,sql要这么写

select * from user limit ((page-1)*row),row

举个例子一页20条,第3页的写法

select * from user limit 40,20
极悟看见人生
2013-12-26 · 1、极悟希望让更多人走出痛苦和内耗,让更多处在痛苦煎熬中的人...
极悟看见人生
采纳数:50 获赞数:131

向TA提问 私信TA
展开全部
mysql 是可以用这样的 在你的SQL后面加上 这个 limit number1,number2 这个是MYSQL自带分页功能! number1 表示是指记录从第几条记录开始取,从0开始,表示第一条记录number2 表示是指从开始位置,取number2条数据。你可以底层封装成2个参数传递到数据库即可做到分页效果!纯手打 真心希望你学业有成!歇息 求给力!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lulubleye
2013-12-26
知道答主
回答量:52
采纳率:0%
帮助的人:12万
展开全部
你可以将从网站上获取到的数据一次性都存储到本地数据库,让后从本地数据库查询的时候按着需要查询指定的条数展示到页面即可,可以默认查询几条,查询的条数可以通过页面的参数进行修改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兲倥很咹静
2013-12-26
知道答主
回答量:46
采纳率:0%
帮助的人:19.7万
展开全部
一次存储进去 但是你在jsp页面上 可以通过limit进行分页
追问
这个我是知道的,但是因为数据太多,一次存储需要花费的时间就太长了,会一直停留在存储页面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式