FMDB源码阅读笔记
【FMDB源码阅读笔记】在iOS关于本地数据库的开发过程中,FMDB是一个被广泛使用的优秀的第三方框架。最近有时间又重读和学习了FMDB的源码,在这里记录一下源码的设计思路,其使用方法这里不再赘述。
一. 综述
- FMResultSet
表示数据库执行查询语句后的结果集。 - FMDataBase
表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删查改等操作。 - FMDataBaseAdditions
扩展 FMDataBase的功能,新增对查询结果只返回单个值的方法进行简化,校验SQL的功能等。 - FMDatabaseQueue
使用串行队列,对多线程的数据库操作进行了支持。 - FMDatabasePool
使用任务池的形式,对多线程的操作提供支持。
文章图片
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 = https://www.it610.com/article/[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
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 上班后阅读开始变成一件奢侈的事
- 历史教学书籍
- 绘本讲师训练营【24期】14/21阅读原创《小黑鱼》
- 21天|21天|M&M《见识》04
- 绘本讲师训练营7期9/21阅读原创《蜗牛屋|绘本讲师训练营7期9/21阅读原创《蜗牛屋 》
- 桂妃研读社|桂妃研读社|D124|如何有效阅读一本书 Day1
- Android事件传递源码分析
- 4.23世界阅读日,樊登读书狂欢放送,听书中成长