iOS 第三方庫 FMDB

2021-07-10 03:03:50 字數 1944 閱讀 2037

對sqlite api進行封裝的庫

fmdb同時相容arc和非arc工程,會自動根據工程配置來調整相關的記憶體管理**。

db = [fmdatabase databasewithpath:database_path];
(1)當資料庫檔案不存在時,fmdb會自己建立乙個。

(2)如果你傳入的引數是空串:@」」 ,則fmdb會在臨時檔案目錄下建立這個資料庫,資料庫斷開連線時,資料庫檔案被刪除。

(3)如果你傳入的引數是 null,則它會建立乙個在記憶體中的資料庫,資料庫斷開連線時,資料庫檔案被刪除。

[db open]
返回bool型。

[db close]
除了查詢操作,fmdb資料庫操作都執行executeupdate方法,返回bool型別。

if ([db open])  else   

[db close];

}

if ([db open])  else   

[db close];

}

if ([db open])  else   

[db close];

}

if ([db open])  else   

[db close];

}

查詢操作使用executequery,返回fmresultset

if ([db open])   

[db close];

}

如果應用中使用了多執行緒運算元據庫,那麼就需要使用fmdatabasequeue來保證執行緒安全了。 應用中不可在多個執行緒中共同使用乙個fmdatabase物件運算元據庫,這樣會引起資料庫資料混亂。 為了多執行緒運算元據庫安全,fmdb使用了fmdatabasequeue,使用fmdatabasequeue很簡單,首先用乙個資料庫檔案位址來初使化fmdatabasequeue,然後就可以將乙個閉包(block)傳入indatabase方法中。 在閉包中運算元據庫,而不直接參與fmdatabase的管理。

fmdatabasequeue * queue = [fmdatabasequeue databasequeuewithpath:database_path];  

dispatch_queue_t q1 = dispatch_queue_create("queue1", null);

dispatch_queue_t q2 = dispatch_queue_create("queue2", null);

dispatch_async(q1, ^ else

}];

} });

dispatch_async(q2, ^ else

}];

} });

fmdatabase : 乙個單一的sqlite資料庫,用於執行sql語句。

fmresultset :執行查詢乙個fmdatabase結果集,這個和android的cursor類似。

fmdatabasequeue :在多個執行緒來執行查詢和更新時會使用這個類。

intforcolumn:

longforcolumn:

longlongintforcolumn:

boolforcolumn:

doubleforcolumn:

stringforcolumn:

dateforcolumn:

dataforcolumn:

datanocopyforcolumn:

utf8stringforcolumnname:

objectforcolumnname:

IOS第三方資料庫 FMDB

ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...

IOS第三方資料庫 FMDB

ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...

iOS 第三方庫

afnetworking 網路請求元件 fmdb 本地資料庫元件 sdwebimage 多個縮圖快取元件 uickeychainstore 存放使用者賬號密碼元件 reachability 監測網路狀態 datetools 友好化時間 mbprogresshud 一款提示框第三方庫 mwphotob...