iOS學習筆記 資料庫操作 使用FMDB

2021-07-03 12:20:15 字數 2035 閱讀 9954

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

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

fmdb常用類:

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

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

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

建立資料庫:

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];

}fmdb的fmresultset提供了多個方法來獲取不同型別的資料:

資料庫多執行緒操作:

如果應用中使用了多執行緒運算元據庫,那麼就需要使用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

}];}

});

使用者名稱與密碼都是www.linuxidc.com

iOS學習筆記 資料庫操作 SQLite

sqlite 是乙個輕量級的關聯式資料庫。sqlite最初的設計目標是用於嵌入式系統,它占用資源非常少,在嵌入式裝置中,只需要幾百k的記憶體就夠了,目前應用於android ios windows phone等智慧型手機。ios 使用時sqlite,只需要加入 libsqlite3.dylib 依賴...

iOS學習筆記 資料庫操作 SQLite

sqlite 是乙個輕量級的關聯式資料庫。sqlite最初的設計目標是用於嵌入式系統,它占用資源非常少,在嵌入式裝置中,只需要幾百k的記憶體就夠了,目前應用於android ios windows phone等智慧型手機。ios 使用時sqlite,只需要加入 libsqlite3.dylib 依賴...

資料庫筆記(資料庫操作)

1.windows系統下 資料庫啟動 net start mysql2.連線與斷開伺服器 mysql h 位址 p 埠 u 使用者名稱 p 密碼3.檢視當前資料庫 select database 4.顯示當前時間,使用者名稱,資料庫版本 select now user version 5.建立庫 1...