美文网首页
FMDB源码阅读笔记

FMDB源码阅读笔记

作者: 小呀小苹果呀 | 来源:发表于2018-05-31 19:09 被阅读0次

在iOS关于本地数据库的开发过程中,FMDB是一个被广泛使用的优秀的第三方框架。最近有时间又重读和学习了FMDB的源码,在这里记录一下源码的设计思路,其使用方法这里不再赘述。

一. 综述

  • FMResultSet
    表示数据库执行查询语句后的结果集。
  • FMDataBase
    表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删查改等操作。
  • FMDataBaseAdditions
    扩展 FMDataBase的功能,新增对查询结果只返回单个值的方法进行简化,校验SQL的功能等。
  • FMDatabaseQueue
    使用串行队列,对多线程的数据库操作进行了支持。
  • FMDatabasePool
    使用任务池的形式,对多线程的操作提供支持。

二.FMResultSet

image.png

其中一个比较重要的方法最主要的处理就是,将SQLite中对查询的结果按照index对应的结果封装为字典, 以表的字段名为key,相对应的数据为value。

- (NSDictionary*)resultDictionary {
    
    NSUInteger num_cols = (NSUInteger)sqlite3_data_count([_statement statement]);
    
    if (num_cols > 0) {
        NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:num_cols];
        
        int columnCount = sqlite3_column_count([_statement statement]);
        
        int columnIdx = 0;
        for (columnIdx = 0; columnIdx < columnCount; columnIdx++) {
            
            NSString *columnName = [NSString stringWithUTF8String:sqlite3_column_name([_statement statement], columnIdx)];
            id objectValue = [self objectForColumnIndex:columnIdx];
            [dict setObject:objectValue forKey:columnName];
        }
        
        return dict;
    }
    else {
        NSLog(@"Warning: There seem to be no columns in this set.");
    }
    
    return nil;
}

三.FMDataBase

四.FMDataBaseAdditions

五.FMDatabaseQueue

六.FMDatabasePool

相关文章

  • FMDB源码阅读笔记

    在iOS关于本地数据库的开发过程中,FMDB是一个被广泛使用的优秀的第三方框架。最近有时间又重读和学习了FMDB的...

  • FMDB 源码阅读

    面试的时候被问到了 说FMDB如何是实现数据的安全的,我当时没有去看源码,直接猜测是加了锁,后来发现不是,现在补上...

  • iOS - FMDB源码

    FMDB是对SQLite数据库的封装。源码地址[https://github.com/ccgus/fmdb] 源码...

  • xgboost和lda学习

    XGBoost 源码阅读笔记 ( 1 ) :代码逻辑结构 XGBoost 源码阅读笔记(2):树构造之 Exact...

  • Junit4 源码分析(本文只是汇总链接)

    链接 Junit源码阅读笔记一(从JunitCore开始) Junit源码阅读笔记二(Runner构建) Juni...

  • SDWebImage原理探究

    SDWebImage 源码阅读笔记

  • etcd-raft 库源码阅读【WIP】

    Etcd 源码阅读 本文是 etcd-raft 库源码的阅读笔记。希望通过阅读 etcd-raft 库的源码,学习...

  • (转)memcached 源码阅读笔记

    memcached 源码阅读笔记 阅读 memcached 最好有 libevent 基础, memcached ...

  • FBReader 源码阅读笔记(一)

    FBREADER 源码阅读笔记 前言 这篇文章是我在读源码时候的笔记。是我的一个习惯吧!在阅读源码的时候会记录一下...

  • fragment

    Android fragment源码全解析 Android源码阅读笔记(1)----Fragment 关于Frag...

网友评论

      本文标题:FMDB源码阅读笔记

      本文链接:https://www.haomeiwen.com/subject/rzfcsftx.html