Sqlite(1)之分页查询
来源:互联网 发布:通联支付网络这么挣钱 编辑:程序博客网 时间:2024/05/21 20:28
转载地址:http://blog.csdn.net/lu1024188315/article/details/51734514
SQLite分页查询有三种方法,它们都是基于SQLite SQL查询来的,首先我们看下SQLite分页查询的SQL语句,有助于我们理解:
1
2
3
4
5
6
#查询第一行起的5行数据,可以有两种语句:
#第一种语句:
select
*
from
T_user limit 5 offset 0;
#第二种语句:
select
*
from
T_user limit 0,5;
然后,回来过头看分页查询方法:
方法一:使用SQLiteDatabase.rawQuery()方法,这是网上介绍得最多的方法,因为直接写SQL语句,所以两种SQL语句它都支持,示例如下:
1
2
String
sql=
"select
* from table Limit 100 Offset 2"
;
Cursor
rec = db.rawQuery(sql,
null
);
方法二:使用SQLiteDatabase.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit) ,它是基于第二种SQL语句的。这个google出来,好像比较少介绍,不知道为什么。我更倾向于这种方法,能够使用Android API提供的简便方法,就使用简便方法,除非它不能满足功能需求,这也是我写代码的原则。
1
2
3
4
5
6
7
8
9
10
11
12
/**
*
table="表命",
*
columns="要查询的列名",
*
selection="查询 条件",
*
selectionArgs="条件中用了占位符的参数",
*
groupBy="数据分组",
*
having="分组后的条件",
*
orderBy="排序方式",
*
limit="分页查询";
**/
cursor=
db.query(TableName,
null
,
null
,
null
,
null
,
null
,
null
,
"5,9"
);
//"5,9",第6行开始,返回9行数据
方法三:使用SQLiteDatabase.query(table, columns, selection, selectionArgs, groupBy, having, orderBy),看到这方法是不是觉得就比方法二少了limit参数,少了limit参数还怎么分页啊。少了limit参数,把分页语句写orderBy里面照样能分页。这是个歪招,利用了SQLiteDatabase最后要把所有的查询转换SQL语句来执行的机制,也算一种SQL注入吧,所以它两种SQL语句都支持。这个方法写在这里是为了加深对SQLiteDatabase SQL操作的理解,非特别需求不建议使用,代码示例如下:
1
2
3
//根据clumn1列降序排序,同时带了分页查询:第6行起查询9行数据
cursor
= db.query(tableName, columns, null, null, null, null,
"clumn1
desc limit 9 offset 5"
);
0 0
- Sqlite(1)之分页查询
- Sqlite的分页查询
- SQLite 分页查询
- Sqlite 分页查询
- SQLite分页查询
- 记录--sqlite 分页查询
- sqlite分页查询
- sqlite分页查询
- sqlite 分页查询
- sqlite分页查询
- Android—SQlite数据库提高篇之数据库分页查询
- SQLite数据库的分页查询
- sqlite模糊查询与分页
- Android之SQLite分页读取
- Android之SQLite分页读取
- Android之SQLite分页表格
- SQLite基本操作加数据库分页查询
- ios Sqlite显示和分页查询
- redis发布订阅
- 二维数组指针的使用
- springmvc初始化的时候,bean都实例化了两次
- leetCode练习(11)
- 获取触点的坐标
- Sqlite(1)之分页查询
- HTML5引入的新数组TypedArray介绍
- iOS推送(一):本地推送
- iOS内存管理
- 不要写死!天猫App的动态化配置中心实践
- 2016 ACM/ICPC Asia Regional Qingdao hdu5890 Eighty seven(DP+bitset优化妙用)
- Eclipse安装Spket插件并破解
- day6_超链接
- oracle重做日志文件组v$log