iOS数据库操作之FMDB

 SQLite一种轻量级关系数据库,在嵌入式系统中使用比较广泛。

    在iOS中使用SQLite需要添加库libsqlite3.0.dylib,并引入头文件#import

    FMDB对sqlit接口进行了高级封装,使用上更加友好简洁。

    https://github.com/ccgus/fmdb

    FMDB包含以下文件:

    FMDatabase.h

    FMDatabase.m

    FMDatabaseAdditions.h

    FMDatabaseAdditions.m

    FMDatabasePool.h

    FMDatabasePool.m

    FMDatabaseQueue.h

    FMDatabaseQueue.m

    FMResultSet.h

    FMResultSet.m

    FMDB使用:

    1.FMDatabase 非线程安全,不要在多线程中使用FMDatabase的单例

    //用指定的数据库名实例化一个数据库,没有此文件则创建

    FMDatabase *db = [FMDatabase databaseWithPath:filePath];

    "" 在临时目录创建一个空的数据库,数据库关闭后会自动删除

    NULL 在内存中创建一个空的数据库,数据库关闭后会自动删除

    //打开数据库,资源不足或权限不够会打开失败

    if (![db open])

    {

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

    }

    //用完后需要关闭

    [db close];

    数据库操作:

    查询操作:SELECT,返回FMResultSet,nil表示查询失败;

    [db executeQuery:sql];

    FMResultSet *rs = [db executeQuery:@"SELECT * FROM TableName"];

    {

    while ([rs next])

    {

    //获取查询结果,即使结果只有一条

    }

    }

    更新操作:非SELECT操作都是更新操作,返回值类型BOOL,YES:成功,NO:失败

    [db executeUpdate:sql];

    数据库事务:

    当需要插入的数据较多时,使用事务操作会比较快。

    [db beginTransaction];

    //需要执行的操作

    [db commit];

    FMResultSet *rs;

    FMResultSet可以不手动关闭,当数据库关闭时,会跟着关闭。

    2.FMDatabaseQueue 线程安全,所有的数据库操作会在队列中顺序执行

    [FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];

    queue inDatabase:^(FMDatabase *db) {

    //

    }];

    queue inTransaction:^(FMDatabase *db, BOOL *rollback) {

    //

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值