FMDB的簡單的使用
首先需要知道的, 就是FMDB擁有的三個大類
- FMDatabaseQueue
- FMDatabase
- FMResultSet
FMDatabaseQueue 這個類在多個線程來執(zhí)行查詢和更新時會使用這個類蔓罚。避免同時訪問同一個數(shù)據(jù)
FMDatabaseQueue是一個串行隊列,它不支持串行任務(wù)嵌套執(zhí)行
需要注意的是, 在使用這個類的時候, 需要避免嵌套使用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), ^{
});