http://www.cnblogs.com/wendingding/p/3871848.html
iOS開發(fā)數(shù)據(jù)庫(kù)篇—FMDB簡(jiǎn)單介紹
一引润、簡(jiǎn)單說(shuō)明
1.什么是FMDB ?
FMDB是iOS平臺(tái)的SQLite數(shù)據(jù)庫(kù)框架
FMDB以O(shè)C的方式封裝了SQLite的C語(yǔ)言API
2.FMDB的優(yōu)點(diǎn)
使用起來(lái)更加面向?qū)ο笊自瘢∪チ撕芏嗦闊⑷哂嗟腃語(yǔ)言代碼
對(duì)比蘋果自帶的Core Data框架,更加輕量級(jí)和靈活
提供了多線程安全的數(shù)據(jù)庫(kù)操作方法挖函,有效地防止數(shù)據(jù)混亂
3.FMDB的github地址
https://github.com/ccgus/fmdb
二论咏、核心類
FMDB有三個(gè)主要的類
(1)FMDatabase
一個(gè)FMDatabase對(duì)象就代表一個(gè)單獨(dú)的SQLite數(shù)據(jù)庫(kù)
用來(lái)執(zhí)行SQL語(yǔ)句
(2)FMResultSet
使用FMDatabase執(zhí)行查詢后的結(jié)果集
(3)FMDatabaseQueue
用于在多線程中執(zhí)行多個(gè)查詢或更新,它是線程安全的
三袍嬉、打開數(shù)據(jù)庫(kù)
通過指定SQLite數(shù)據(jù)庫(kù)文件路徑來(lái)創(chuàng)建FMDatabase對(duì)象
FMDatabase *db = [FMDatabase databaseWithPath:path];
if (![db open]) {
NSLog(@"數(shù)據(jù)庫(kù)打開失斁嘲!");
}
文件路徑有三種情況
(1)具體文件路徑
如果不存在會(huì)自動(dòng)創(chuàng)建
(2)空字符串@""
會(huì)在臨時(shí)目錄創(chuàng)建一個(gè)空的數(shù)據(jù)庫(kù)
當(dāng)FMDatabase連接關(guān)閉時(shí)伺通,數(shù)據(jù)庫(kù)文件也被刪除
(3)nil
會(huì)創(chuàng)建一個(gè)內(nèi)存中臨時(shí)數(shù)據(jù)庫(kù)箍土,當(dāng)FMDatabase連接關(guān)閉時(shí),數(shù)據(jù)庫(kù)會(huì)被銷毀
四罐监、執(zhí)行更新
在FMDB中吴藻,除查詢以外的所有操作,都稱為“更新”
create弓柱、drop沟堡、insert、update矢空、delete等
使用executeUpdate:方法執(zhí)行更新
- (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"]
五航罗、執(zhí)行查詢
查詢方法
- (FMResultSet *)executeQuery:(NSString*)sql, ...
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
示例
// 查詢數(shù)據(jù)
FMResultSet *rs = [db executeQuery:@"SELECT * FROM t_student"];
// 遍歷結(jié)果集
while ([rs next]) {
NSString *name = [rs stringForColumn:@"name"];
int age = [rs intForColumn:@"age"];
double score = [rs doubleForColumn:@"score"];
}
六、代碼示例
1.新建一個(gè)項(xiàng)目妇多,導(dǎo)入libsqlite3庫(kù)伤哺,并在項(xiàng)目中包含主頭文件
2.下載第三方框架FMDB
3.示例代碼
YYViewController.m文件
實(shí)現(xiàn)結(jié)果: