iOS 資料持久化四 SQLite3 1

2021-07-03 10:11:39 字數 2999 閱讀 6670

下邊的內容是由這來的

以下介紹幾個常用的指令,分享給大家:

(1)-開啟/關閉資料庫

使用資料庫的第一件事,就是建立乙個資料庫。

要注意的是,在ios環境下,只有document directory 是可以進行讀寫的。在寫程式時用的那個resource資料夾底下的東西都是read-only。因此,建立的資料庫要放在document 資料夾下。方法如下: 

1nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

2nsstring *documentdirectory = [paths objectatindex:0];

3"mydatabase.db"];

4fmdatabase *db = [fmdatabase databasewithpath:dbpath] ;

5if(![db open])

(2)-- 建立table

如果是新建的資料庫檔,一開始是沒有table的。建立table的方式很簡單:

1[db executeupdate:@"create table personlist (name text, age integer, *** integer, phone text, address text, photo blob)"];

這是fmdb裡很常用的指令,[fmdatabase_object executeupdate:]後面用nsstring塞入sqlite語法,就解決了。因為這篇主要是在講fmdb,所以sqlite的語法就不多說了,上述程式碼建立了乙個名為personlist的table,裡面有姓名、年齡、性別、**、位址和**。(嗯….很範例的乙個table)

(3)-插入資料

插入資料跟前面一樣,用executeupdate後面加語法就可以了。比較不同的是,因為插入的資料會跟objective-c的變數有關,所以在string裡使用?號來代表這些變數。

1[db executeupdate:@"insert into personlist (name, age, ***, phone, address, photo) values (?,?,?,?,?,?)",@"jone", [nsnumber numberwithint:20], [nsnumber numberwithint:0], @「091234567」, @「taiwan, r.o.c」, [nsdata datawithcontentsoffile: filepath]];

其中,在sqlite中的text對應到的是nsstring,integer對應nsnumber,blob則是nsdata。該做的轉換fmdb都做好了,只要了解sqlite語法,應該沒有什麼問題才是。

(4)-更新資料

太簡單了,不想講,請看範例:

1[db executeupdate:@"update personlist set age = ? where name = ?",[nsnumber numberwithint:30],@「john」];

(5)-取得資料

取得特定的資料,則需使用fmresultset物件接收傳回的內容:

01fmresultset *rs = [db executequery:@"select name, age, from personlist"];

02

03while([rs next])

10

11[rs close];

用[rs next]可以輪詢query回來的資料,每一次的next可以得到乙個row裡對應的數值,並用[rs stringforcolumn:]或[rs intforcolumn:]等方法把值轉成object-c的型態。取用完資料後則用[rs close]把結果關閉。

(6)-快速取得資料

在有些時候,只會query某乙個row裡特定的乙個數值(比方只是要找john的年齡),fmdb提供了幾個比較簡便的方法。這些方法定義在fmdatabaseadditions.h,如果要使用,記得先import進來。

view source

print

1//找位址

2

3nsstring *address = [db stringforquery:@"select address from personlist where name = ?",@"john」];

4

5//找年齡

6

7int age = [db intforquery:@"select age from personlist where name = ?",@"john」];

iOS 資料持久化四 SQLite3 1

下邊的內容是由這來的 以下介紹幾個常用的指令,分享給大家 1 開啟 關閉資料庫 使用資料庫的第一件事,就是建立乙個資料庫。要注意的是,在ios環境下,只有document directory 是可以進行讀寫的。在寫程式時用的那個resource資料夾底下的東西都是read only。因此,建立的資料...

iOS資料持久化1 SQLite

這裡採用乙個二次封裝的例項來初步演示和實現 更新 如果嫌麻煩,這裡放乙個,建議github 你將有這幾個檔案 其中data.db是database檔案 讓後組織進 project 最好放在最外面,使用時就不必新增子目錄 修改 building settings swift compiler gene...

iOS終端資料持久化

ios有很多資料持久化技術,包括傳統的資料庫,但也有一些較新的技術,它主要的持久化技術有 資料庫 屬性列表 物件歸檔和。本節將分別介紹這四種持久化方式,輔助本文在設計與實現中針對不同的需求選擇合適的資料持久化方式。資料庫技術被廣泛的使用在各大系統中,資料庫也是乙個系統的核心部分,資料庫管理系統如今發...