iOS資料庫操作之FMDB

2021-06-19 05:05:15 字數 1372 閱讀 6759

sqlite一種輕量級關聯式資料庫,在嵌入式系統中使用比較廣泛。

在ios中使用sqlite需要新增庫libsqlite3.0.dylib,並引入標頭檔案#import 

fmdb對sqlit介面進行了高階封裝,使用上更加友好簡潔。

fmdb包含以下檔案:

fmdatabase.h

fmdatabase.m

fmdatabaseadditions.h

fmdatabaseadditions.m

fmdatabasepool.h

fmdatabasepool.m

fmdatabasequeue.h

fmdatabasequeue.m

fmresultset.h

fmresultset.m

fmdb使用:

1.fmdatabase 非執行緒安全,不要在多執行緒中使用fmdatabase的單例

//用指定的資料庫名例項化乙個資料庫,沒有此檔案則建立

fmdatabase *db = [fmdatabase databasewithpath:filepath];

"" 在臨時目錄建立乙個空的資料庫,資料庫關閉後會自動刪除

null 在記憶體中建立乙個空的資料庫,資料庫關閉後會自動刪除

//開啟資料庫,資源不足或許可權不夠會開啟失敗

if (![db open])

//用完後需要關閉

[db close];

資料庫操作:

查詢操作:select,返回fmresultset,nil表示查詢失敗;

[db executequery:sql];

fmresultset *rs = [db executequery:@"select * from tablename"];

}更新操作:非select操作都是更新操作,返回值型別bool,yes:成功,no:失敗

[db executeupdate:sql];

資料庫事務:

當需要插入的資料較多時,使用事務操作會比較快。

[db begintransaction];

//需要執行的操作

[db commit];

fmresultset *rs;

fmresultset可以不手動關閉,當資料庫關閉時,會跟著關閉。

2.fmdatabasequeue 執行緒安全,所有的資料庫操作會在佇列中順序執行

[fmdatabasequeue *queue = [fmdatabasequeue databasequeuewithpath:path];

queue indatabase:^(fmdatabase *db) ];

queue intransaction:^(fmdatabase *db, bool *rollback)

iOS資料庫操作之FMDB

sqlite一種輕量級關聯式資料庫,在嵌入式系統中使用比較廣泛。在ios中使用sqlite需要新增庫libsqlite3.0.dylib,並引入標頭檔案 import fmdb對sqlit介面進行了高階封裝,使用上更加友好簡潔。fmdb包含以下檔案 fmdatabase.h fmdatabase.m...

iOS資料庫操作之FMDB

sqlite一種輕量級關係 資料庫,在嵌入式系統中使用比較廣泛。在ios中使用sqlite需要新增庫libsqlite3.0.dylib,並引入標頭檔案 import fmdb對sqlit介面進行了高階封裝,使用上更加友好簡潔。fmdb包含以下檔案 fmdatabase.h fmdatabase.m...

iOS 資料庫操作 使用FMDB

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