FMDB的简单的使用
首先需要知道的, 就是FMDB拥有的三个大类
- FMDatabaseQueue
- FMDatabase
- FMResultSet
FMDatabaseQueue 这个类在多个线程来执行查询和更新时会使用这个类。避免同时访问同一个数据
FMDatabaseQueue是一个串行队列,它不支持串行任务嵌套执行
需要注意的是, 在使用这个类的时候, 需要避免嵌套使用inDatabase 这个方法, 不然会造成线程的死锁
[(FMDatabaseQueue的单例) inDatabase:^(FMDatabase *db) {
FMResultSet *result = [db executeQuery: [NSStringstringWithFormat:@"select * from BookClassify order by classifyID desc"]];
''
'' while ([result next]) {
'' //处理result
'' }
''
'' [(FMDatabaseQueue的单 例) inDatabase:^(FMDatabase *db) {
'' //有问题了
'' }];
''
'' }];
可以用db再次进行sql操作、不必再inDatabase
FMDatabaseQueue不是在次线程中操作、若要次线程操作在外面要包
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_ PRIORITY_DEFAULT,0), ^{
});