OC本地数据分页读取

主要是sql语句limit的使用

PS:

原来做的项目涉及到分页都是后台处理的。但是最近有个项目需要自己本地做分页。于是自己尝试着写了一下主要还是sql语句limit的使用 废话不多说,直接上代码吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

+ (NSMutableArray *)getAllMessage:(NSString *)type page:(NSString *)page size:(NSString *)size{


FMDatabase *db = [SendIFDataBaseUnity getDatabase];

if (![db open]) {
return nil;
}
[db setShouldCacheStatements:YES];
if (![db tableExists:@"messagetable"]) {

return nil;
}
int limit0;
int limit1;

if ([page intValue] == 0) {

limit0 = 0;
limit1 = 9;

}else{

limit0 = [page intValue]*[size intValue];
limit1 = [page intValue]*[size intValue]+9;
}

NSString *sql;
if ([type intValue] == -1) { //全部


sql = [NSString stringWithFormat:@"select * from messagetable order by createTime desc limit 10 offset %d",limit0];
}else{

sql = [NSString stringWithFormat:@"select * from messagetable where type=%@ order by createTime desc limit %d,%d",type,limit0,limit1];
}


FMResultSet *resultSet = [db executeQuery:sql];
NSMutableArray *resultArr = [[NSMutableArray alloc] initWithCapacity:0];


while ([resultSet next]) {

//这里处理模型赋值
}

[resultSet close];
[db close];
return resultArr;
}