免費開源的iOS開發學習平臺

FMDB:1-基本介紹

通常情況下,由于原生的SQLite使用起來非常繁瑣,所以我們一般不會直接使用,取而代之的是FMDB。FMDB是使用Objective-C對SQLite的API進行封裝的庫,使用起來會比直接使用C語言API容易。FMDB使用起來更加面向對象,因而省去了很多麻煩,并且還提供了更方便的方法來拼接SQL語句。

下載與安裝

我們可以到github下載最新版本的FMDB,下載的地址為:https://github.com/ccgus/fmdb。點擊【Clone or download】即可下載最新版本的FMDB到本地硬盤中。

FMDB的安裝推薦使用CocoaPods,使用CocoaPods安裝的步驟如下:

  • 打開終端;
  • 使用cd命令導航到工程根目錄,執行pod init
  • 在Podfile文件中加上pod 'FMDB'
pod 'FMDB'
  • 在終端中執行pod update, 也可以使用pod update --no-repo-update來加快更新速度。

另外,也可以使用手工方式安裝FMDB。解壓下載到的fmdb-master.zip文件后,把其中的src/fmdb文件夾添加到工程中。

在需要使用FMDB的類中,導入FMDB的頭文件,即可使用其中的方法。

#import "FMDB.h"

FMDB核心類介紹

在FMDB中,提供了3個核心類。

  • FMDatabase:數據庫類,所有的SQL語句都需要在數據庫中執行;
  • FMResultSet:執行SELECT語句后,查詢數據庫的結果集。
  • FMDatabaseQueue:如果要在多線程上執行查詢和更新,需要用到這個類。

創建數據庫

如果需要創建一個數據庫庫,只需要給FMDatabase類提供一個數據庫文件存儲的路徑即可。在FMDatabase.h文件中,提供了databaseWithPath:方法,用于快速創建一個數據庫。

+ (instancetype)databaseWithPath:(NSString*)inPath;

在databaseWithPath:方法中,需要傳入數據庫所在路徑,這個路徑有三種情況:

  1. 提供一個系統路徑。如果這個路徑上沒有數據庫,則會創建一個新的數據庫。
  2. 一個空字符串@""。在沙盒中的temporary文件夾中創建一個數據庫,之后在數據庫被關閉之后會被刪除。
  3. NULL。在內存中創建一個數據庫,之后在數據庫被關閉之后會被刪除。
    NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *dbDir = [dirPath objectAtIndex:0];
    NSString *path = [dbDir stringByAppendingPathComponent:@"tmp.db"];
    FMDatabase *db = [FMDatabase databaseWithPath:path];

打開數據庫

在使用SQLite數據庫之前,都需要打開數據庫。由于FMDB是對SQLite的封裝,因此在操作數據庫之前,也需要提前打開數據庫。在FMDB中,提供了open方法用于打開數據庫。

if (![db open]) {
    // 數據庫打開失敗的處理
    db = nil;
    return;
}

關閉數據庫

對數據庫執行完查詢或更新操作后,我們需要調用close方法關閉SQLite數據連接,以便釋放系統資源。

[db close];

事務Transactions

事務Transactions是數據庫操作的單個工作單位。如果某一事務成功,則在該事務中進行的所有數據更改均會提交,成為數據庫中永久的組成部分。若果事務遇到錯誤,則必須取消或回滾,所有數據均被更改清除。

FMDatabase通過begin/end語句來開始和提交一個事務。

  • 開始執行事務
- (BOOL)beginTransaction;
  • 提交事務
- (BOOL)commit;
  • 事務回滾
- (BOOL)rollback;

日韩av 中文字幕 1_亚洲第一区在线_亚洲V日韩V精品v无码专区_色鬼久久亚洲AV综合