在iphone上是採用sqlite進行資料儲存是我一種比較習慣性的做法。一般在其他平台也比較習慣用sqlite,比如android。
而iphone上有一些封裝好的第三方框架提供使用,更節省了許多時間。如:sqlitepersistentobjects ,fmdb。今天查詢了這個兩個框架,感覺fmdb的風格更符合我的使用,其實兩者是各有優點的,只是看個人喜好而已。
以下是fmdb的一些基本使用,fmdb框架其實只是一層很薄的封裝,主要的類也就兩個:fmdatabase和fmresultset;
其中的fmresultset物件讓我想起了android中sqlite的cursor集合啊。
fmdb的github位址是,
1、首先得例項化一個fmdatabase物件,這跟sqlitepersistentobjects派生乙個子類進行操作是不同。接著開啟乙個資料庫(如果沒有會建立乙個資料庫)
1 //paths: ios下document路徑,document為ios中可讀寫的資料夾
2 nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
3 nsstring *documentdirectory = [paths objectatindex:0];
4 //dbpath: 資料庫路徑,在document中。
6 //建立資料庫例項 db 這裡說明下:如果路徑中不存在"test.db"的檔案,sqlite會自動建立"test.db"
7 fmdatabase *db= [fmdatabase databasewithpath:dbpath] ;
8 if (![db open])
接下來,我們可以通過這個資料庫物件進行操作了。操作主要是update和queries。
首先是建立表:
1 //建立乙個名為user的表,有兩個字段分別為string型別的name,integer型別的 age
2 [db executeupdate:@"create table user (name text,age integer)"];
這樣我們就有了一張表了。接下我們對錶進行操作。插入資料!注意插入的資料使用了萬用字元,這跟iphone直接使用sqlite藉口的繫結變數是一樣的,後面的萬用字元匹配的資料。
1 //插入資料使用oc中的型別 text對應為nsstring integer對應為nsnumber的整形
2 [db executeupdate:@"insert into user (name,age) values (?,?)",@"老婆",[nsnumber numberwithint:20]];
接下來是更新資料。
1 //更新資料 將「老婆」更改為「寶貝」
2 [db executeupdate:@"update user set name = ? where name = ? ",@"老婆",@"寶貝"];
再接下來,就是刪除資料啦。
1 //刪除資料
2 [db executeupdate:@"delete from user where name = ?",@"老婆"];
update的基本操作就這幾個,接下來是queries!
1 //返回資料庫中第一條滿足條件的結果
2 nsstring *aa=[db stringforquery:@"select name from user where age = ?",@"20"];
這樣我們就查詢返回了一條資料,那當我們想要查詢放返回多條資料怎麼辦呢?不用愁,之前我就提到了fmdb中的另外乙個主要的類,fmresultset,這是乙個結果集!返回多條資料時fmdb會將資料放在這個結果集中,然後我們在對這個結果集進行查詢操作!很簡單。
1 fmresultset *rs=[db executequery:@"select * from user"];
2 rs=[db executequery:@"select * from user where age = ?",@"20"];
3 while ([rs next])
iOS FMDB資料庫加密相關
資料庫加密一般有兩種方式 1 對所有資料進行加密 2 對資料庫檔案加密 處於客戶端效能的考慮,通常我們對資料庫檔案進行加密,在ios上用的比較多的是 sqlcipher,由於原生提供的sqlite api是c語言實現的,通常我們會用乙個在github上比較有名的乙個工具庫fmdb,fmdb對原生的s...
iOS FMDB 資料庫 詳解
一 簡單說明 1.什麼是fmdb fmdb是ios平台的sqlite資料庫框架 fmdb以oc的方式封裝了sqlite的c語言api 2.fmdb的優點 使用起來更加物件導向,省去了很多麻煩 冗餘的c語言 對比蘋果自帶的core data框架,更加輕量級和靈活 提供了多執行緒安全的資料庫操作方法,有...
iOS FMDB操作sqlite資料庫
一 簡單說明 1.什麼是fmdb fmdb是ios平台的sqlite資料庫框架 fmdb以oc的方式封裝了sqlite的c語言api 2.fmdb的優點 使用起來更加物件導向,省去了很多麻煩 冗餘的c語言 對比蘋果自帶的core data框架,更加輕量級和靈活 提供了多執行緒安全的資料庫操作方法,有...