HWWY

导航

iOS sqlite大数据分段加载的实现,sqlite数据库的操作

数据库管理类(自己封装的,挺简单的)

//

//  MyDataBaseManger.m

//  DB_Test

//

//  Created by admin on 17/2/7.

//  Copyright © 2017年 HWWY. All rights reserved.

//

 

#import "MyDataBaseManger.h"

#import "FMDB.h"

 

@interface MyDataBaseManger()

@property(nonatomic,strong)FMDatabase *dataBase;

 

@end

 

@implementation MyDataBaseManger

@synthesize dataBase;

 

static MyDataBaseManger *manager = nil;

+(MyDataBaseManger *)createManager

{

    if (manager == nil) {

        manager = [[MyDataBaseManger alloc] init];

    }

    

    return manager;

}

 

-(void)dataBaseWithFile:(NSString *)fileName

{

    if(fileName == nil){

        NSLog(@"文件名不能为空");

        return;

    }

    NSString *path = [[NSBundle mainBundle]pathForResource:fileName ofType:nil];

    if (path == nil) {

        NSLog(@"找不到文件路劲");

        return;

    }

    if (path) {

        dataBase = [[FMDatabase alloc]initWithPath:path];

        if (![dataBase open]) {

            NSLog(@"数据库打开失败");

            return;

        }

    }else{

        NSLog(@"数据库路径获取失败");

    }

    

    

}

 

-(NSArray *)getArrayData:(NSString *)sqlString

{

    //每次对数据操作的时候都必须打开数据库,这个东西说不定啥时候就关闭了

    [self openDataBase];

    NSMutableArray *array = [NSMutableArray array];

    FMResultSet *result = [dataBase executeQuery:sqlString];

    while (result.next) {

        NSDictionary *tempDict = [result resultDictionary];

        [array addObject:tempDict];

    }

    return  array;

}

 

 

/**

 数据库打开类

 */

-(void)openDataBase

{

    if ([dataBase close]) {

        [dataBase open];

    }

}

 

@end

调用的地方:

//下面是一个简单的例子

    //开始值得位置

    int startTag = 0;

    //每次的增量

    static int temp = 30;

    NSString *deaseName = @"%%病%%";

    //拼接sql语句

    NSString *sqlGetAll = [NSString stringWithFormat:@"select * from student where term_name like '%@' limit %d, %d;",deaseName, startTag,temp];

    

    //初始化我们的数据库管理对象

    dataBaseManager = [MyDataBaseManger createManager];

    [dataBaseManager dataBaseWithFile:@"testDB.db"];

    NSArray *arr = [dataBaseManager getArrayData:sqlGetAll];

    NSLog(@"%@",arr);

下面只需要对arr里面的字典封装为model就可以使用了,上面我写的startTag和temp封装到下拉控件就可以了,是不是很简单哦。

这样封装的好处,sql语句随心写,返回数据随便解析。

 

posted on 2017-02-07 14:21  HWWY  阅读(187)  评论(0编辑  收藏  举报