fmdb是一種第三方的開源庫,fmdb就是對sqlite的api進行了封裝,加上了物件導向的思想,讓我們不必使用繁瑣的c語言api函式,比起直接操作sqlite更加方便。
fmdb優點:
1.使用起來更加物件導向,省去了很多麻煩、冗餘的c語言**
2.對比蘋果自帶的coredata框架,更加輕量級和靈活
3.提供多執行緒安全,有效地防止資料混亂,原來的sqlite不是執行緒安全
fmdb缺點:
因為是oc語言封裝的,失去了sqlite原來的跨平台性
一般的fmdb資料庫操作有:
1.建立資料庫
2.開啟資料庫、關閉資料庫
3.執行更新(增加、刪除、修改)的sql語句
4.執行查詢的sql語句
一、開啟資料庫
通過指定sqlite資料庫檔案路徑來建立fmdatabase物件
fmdatabase *db = [fmdatabase databasewithpath:path];
if (![db open])
檔案路徑有三種情況
(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])
**示例:
//mark:建立本地資料庫
- (void)createdatabase
else
}[db close];
}
增加資料:
-(void)insertcontentlist:(nsmutablearray*)data
}];if(data==nil||data.count<=0)
nsstring*insertcontentsql=@"insert into contentlist_tb(contentid ,contentname ,contentno,filename,filepath ,veision) values (?,?,?,?,?,?)";
[queue indatabase:^(fmdatabase *db)
}];更新資料:
fmdatabasequeue* queue=[fmdatabasequeue getshareddatabasequeue];
[queue indatabase:^(fmdatabase *db)
}];
查詢資料:
//根據filename查詢version
arguments = [nsmutablearray array];
[queue indatabase:^(fmdatabase *db)
[rs close];
}}];
[queue indatabase:^(fmdatabase *db)
[rs close];
}}];
以上就是fmdb的基本使用方法和幾種基本的運算元據庫的方法,用起來簡單易懂,十分方便,大家盡可嘗試。
iOS 資料庫 FMDB使用
好久沒有寫oc 了,幹了一年的cocos2d x,終於又回歸ios了,這段時間翻看了以前寫的,試圖控制項基本總結完畢,還有一些不常用的以後再補充。後面有時間就寫一些其他的。今天就先寫一下資料庫和乙個三方fmdb。其實ios的資料儲存形式有很多,比如 檔案形式,nsuserdefault,資料庫等。檔...
iOS 資料庫操作 使用FMDB
ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...
iOS資料庫操作 使用FMDB
ios中原生的sqlite api在使用上相當不友好,在使用時,非常不便。於是,就出現了一系列將sqlite api進行封裝的庫,例如fmdb plausibledatabase sqlitepersistentobjects等,fmdb 是一款簡潔 易用的封裝庫,這一篇文章簡單介紹下fmdb的使用...