起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3533|回复: 16

[结贴] oracle数据库分页查询问题

[复制链接]

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
发表于 2017-5-12 10:11:24 | 显示全部楼层 |阅读模式
求大神解答一下或是给个思路,我的数据库是oracle,这张表有7万多条数据,如果一次性加载就会因为数据量过大而报错崩溃,现在我要在后端sql语句对其进行分页查询,但是我设置了查询20条之后,返回到前端,前端loaddata之后就只能展示这20条数据,scrollView配合list的下拉加载都没有效果,请问我该怎么做才能分页加载到所有数据?

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
 楼主| 发表于 2017-5-12 10:30:04 | 显示全部楼层
自顶
回复

使用道具 举报

发表于 2017-5-12 11:22:15 | 显示全部楼层
不是BaasServer 的标准查询action实现的对吧!
而是你自己通过ajax进行分页查询是吗
http://docs.wex5.com/wex5-ui-question-list-2028/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
 楼主| 发表于 2017-5-12 13:44:54 | 显示全部楼层
liangyongfei 发表于 2017-5-12 11:22
不是BaasServer 的标准查询action实现的对吧!
而是你自己通过ajax进行分页查询是吗
http://docs.wex5.com/ ...

这个我看过了,也试过设置总条数,也是直接当机,报错
回复 支持 反对

使用道具 举报

发表于 2017-5-12 13:58:39 | 显示全部楼层
Hebe 发表于 2017-5-12 13:44
这个我看过了,也试过设置总条数,也是直接当机,报错

当机,客户端当机吗??
设置总条数后!你需要吧 limit 和 offset属性的值传递到你的后台!sql查询的时候,需要自己拼接sql语句 进行分页查询!!只要你不是所以数据都加载过来的,就不会当机的吧!

分页查询的sql是你自己实现的!
data组件只不过提供了总行数getTotal ,每页加载几条limit 以及从第几条数据开始加载offset
最终后台返回的数据是多少条是后台。你自己决定的!data组件也控制不了!
如果你把所有数据都返回,当然就当机了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
 楼主| 发表于 2017-5-12 14:00:24 | 显示全部楼层
liangyongfei 发表于 2017-5-12 13:58
当机,客户端当机吗??
设置总条数后!你需要吧 limit 和 offset属性的值传递到你的后台 ...

道理我都懂,可limit和offset的机制太模糊了,不清楚
回复 支持 反对

使用道具 举报

发表于 2017-5-12 14:05:53 | 显示全部楼层
Hebe 发表于 2017-5-12 14:00
道理我都懂,可limit和offset的机制太模糊了,不清楚

limit 表示每次请求加载多少条数据

offset表示 从第几条数据开始查询的!

比如mysql 的 sql语句
SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15

第一个参数表示offset 从 索引为5的数据开始查询
第二个参数是limit 表示查询10条数据
http://www.cnblogs.com/end/archive/2011/04/09/2010525.html


至于oracle 分页查询的代码我记得比较复制!你上网搜下吧!
有了offset  和 limit 应该就可以进行分页的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
 楼主| 发表于 2017-5-12 14:15:49 | 显示全部楼层
liangyongfei 发表于 2017-5-12 14:05
limit 表示每次请求加载多少条数据

offset表示 从第几条数据开始查询的!

oracle并不支持limit的写法,只能通过rownum来限制返回的数据数量,但这样的话我就只能查到部分数据,没有办法查到所有数据了,比如我限制rownum<=20,那么就只有20条数据返回到前端
回复 支持 反对

使用道具 举报

发表于 2017-5-12 14:20:54 | 显示全部楼层
Hebe 发表于 2017-5-12 14:15
oracle并不支持limit的写法,只能通过rownum来限制返回的数据数量,但这样的话我就只能查到部分数据,没 ...

oracle 也肯定是能分页查询的!
上网搜下吧!
http://blog.csdn.net/fw0124/article/details/42737671

多种方法的 既然知道了查询范围就是 offset  到 offset +limit
比如第一种
  1. SELECT * FROM   
  2. (  
  3. SELECT A.*, ROWNUM RN   
  4. FROM (SELECT * FROM TABLE_NAME) A   
  5. )  
  6. WHERE RN BETWEEN offset  AND (offset +limit)
复制代码


就是把offset  和 limit 传过去计算,符合他查询的格式就行了!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

59

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
 楼主| 发表于 2017-5-12 14:34:41 | 显示全部楼层
liangyongfei 发表于 2017-5-12 14:20
oracle 也肯定是能分页查询的!
上网搜下吧!
http://blog.csdn.net/fw0124/article/details/42737671

现在能看到分页效果了,在设置总条数这个问题上,我数据库有多少条数据就设置多少条么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-25 12:29 , Processed in 0.063695 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表