一、簡介
? ? 1.什么是FMDB
FMDB是iOS平臺的SQLite數據庫框架
FMDB以OC的方式封裝了SQLite的C語言API
?
2.FMDB的優點
使用起來更加面向對象,省去了很多麻煩、冗余的C語言代碼
對比蘋果自帶的Core Data框架,更加輕量級和靈活
提供了多線程安全的數據庫操作方法,有效地防止數據混亂
3.FMDB的github地址
https://github.com/ccgus/fmdb
?二、核心類
FMDB主要的三個類:
(1)FMDatabase
一個FMDatabase對象就代表一個單獨的SQLite數據庫
用來執行SQL語句
?
(2)FMResultSet
使用FMDatabase執行查詢后的結果集
?
(3)FMDatabaseQueue
用于在多線程中執行多個查詢或更新,它是線程安全的
?
三、打開數據庫
通過指定SQLite數據庫文件路徑來創建FMDatabase對象
FMDatabase *db = [FMDatabase databaseWithPath:path];
if (![db open]) {
? ? NSLog(@"數據庫打開失敗!");
}
?
文件路徑有三種情況
(1)具體文件路徑
如果不存在會自動創建
?
(2)空字符串@""
會在臨時目錄創建一個空的數據庫
當FMDatabase連接關閉時,數據庫文件也被刪除
?
(3)nil
會創建一個內存中臨時數據庫,當FMDatabase連接關閉時,數據庫會被銷毀
?
四、執行更新
在FMDB中,除查詢以外的所有操作,都稱為“更新”
create、drop、insert、update、delete等
?
使用executeUpdate:方法執行更新
- (BOOL)executeUpdate:(NSString*)sql, ...
- (BOOL)executeUpdateWithFormat:(NSString*)format, ...
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments
?
示例
[db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]
?
五、執行查詢
查詢方法
- (FMResultSet *)executeQuery:(NSString*)sql, ...
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
?
示例
// 查詢數據
FMResultSet *rs = [db executeQuery:@"SELECT * FROM t_student"];
?
// 遍歷結果集
while ([rs next]) {
? ? NSString *name = [rs stringForColumn:@"name"];
? ? int age = [rs intForColumn:@"age"];
? ? double score = [rs doubleForColumn:@"score"];
}