iOS之FMDB的基本使用

2021-07-11 15:48:09 字數 2447 閱讀 1135

缺點:

fmdb中重要的類

fmdb資料庫(sqlite)下的使用 :

注意: 建立fmdatabase物件時引數為sqlite資料庫檔案路徑, 該路徑可以是一下三種方式之一

- 檔案路徑.該檔案路徑無需真是存在,如果不存在會自動建立

- 空字串(@「」). 表示會在臨時目錄建立乙個空的資料庫,當fmdatabase連線關閉時,檔案也會被刪除

- null. 將建立乙個內在資料庫, 同樣的, 當fmdatabase連線關閉時, 資料將會被摧毀

首先要匯入libsqlite3.0框架,匯入標頭檔案 import **實現:

(對fmdb中資料庫的增刪改查的簡單封裝)

#import "fmdbhelp.h"

#import

@inte***ce

fmdbhelp ()

@property(nonatomic,strong)nsstring *filename;//資料庫檔案的路徑

@property(nonatomic,strong)fmdatabase *database; //資料庫物件

@end

@implementation

fmdbhelp

#pragma mark - 單例

+ (fmdbhelp*)sharedfmdbhelp );

return help;

}#pragma mark - 讓使用者來命名資料庫的名稱

- (void)createdbwithname:(nsstring*)dbname else else

}}#pragma amrk - 根據名稱建立沙盒路徑用來儲存資料庫檔案

- (nsstring*)dbpath else

}#pragma mark - 建立資料庫物件

//懶載入

- (fmdatabase*)database

return _database;

}#pragma mark - 開啟或者建立資料庫

- (bool)openorcreatedb else

}#pragma mark - 無返回結果集的操作

- (bool)notresultsetwithsql:(nsstring*)sql else

}#pragma mark - 關閉資料庫的方法

- (void)closedb else

}#pragma mark - 通用的查詢方法

- (nsarray*)qureywithsql:(nsstring*)sql

//釋放結果集

[set close];

[self closedb];

return array;

} else

}

#import 

@inte***ce

fmdbhelp : nsobject

+ (fmdbhelp*)sharedfmdbhelp;

//給資料庫命名

- (void)createdbwithname:(nsstring*)dbname;

//無返回結果集的操作

- (bool)notresultsetwithsql:(nsstring*)sql;

//查詢操作

- (nsarray*)qureywithsql:(nsstring*)sql;

@end

fmdb多執行緒下的使用

//    開啟資料庫

[self opendb];

// 在子執行緒中執行資料庫插入操作

dispatch_sync(dispatch_get_global_queue(0, 0), ^);

#pragma mark - 資料儲存檔案的路徑

- (nsstring *)dbpath

#pragma mark - 開啟資料庫並建表

- (void)opendb else

} else

}#pragma mark - 多執行緒運算元據庫時,非事務的處理方式

// 事務(transaction)是併發控制的基本單位。所謂的事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉賬工作:從乙個賬號扣款並使另乙個賬號增款,這兩個操作要麼都執行,要麼都不執行。所以,應該把它們看成乙個事務。事務是資料庫維護資料一致性的單位,在每個事務結束時,都能保持資料一致性

- (void)threadnotransaction }}

if (iserror) else

//提交事務

[db commit];

}];}#pragma mark - 多執行緒運算元據庫時,事務的處理方式

- (void)threadtransaction

}];}

FMDB的基本使用

首先資料庫是系統資源,就像我們操作檔案一樣,所以併發操作時要注意安全。在ios上,只有乙個執行緒能夠開啟資料庫操作,其他執行緒要運算元據庫必須等資料庫關閉後才能開啟操作。ios中原生的sqliteapi在進行資料儲存的時候,需要使用c語言中的函式,操作比較麻煩。於是,就出現了一系列將sqlite a...

FMDB基本使用

import 建立乙個類 import ns assume nonnull begin inte ce dbdcachetool nsobject void set end import dbdcachetool.h import implementation dbdcachetool void s...

FMDB 基本使用

0.拼接資料庫存放的沙盒路徑 nsstring path nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes lastobject 1.通過路徑建立資料庫 fmdatabase db fmdatab...