iOS FMDB 資料庫相關

2021-10-04 08:09:14 字數 2303 閱讀 8536

在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框架,更加輕量級和靈活 提供了多執行緒安全的資料庫操作方法,有...