資料持久化

2021-06-29 11:01:28 字數 3693 閱讀 7946

資料持久化是通過檔案將資料儲存在磁碟上

ios有四種資料持久化方式

1.屬性列表(property list)。簡單易用,適合小資料量的儲存和查詢操作,但是不適合大量資料的儲存.

屬性列表**

//1屬性列表(property list)

nsarray

*plist = 

@[@"name"

,@"age"];

//指定儲存的地方

nsstring

*file = [

nshomedirectory

() :

@"/documents/database.plist"

];//將建立的陣列儲存到指定的路徑下

[plist 

writetofile

:file 

atomically

:yes

];2 物件歸檔(把資料進行序列化儲存),好處:1對資料進行加密,2檔案儲存的方式是序列化的。但是它也不適合大量資料的儲存.

物件歸檔**

//2物件歸檔

nsdictionary

*dic = @;

//建立歸檔物件

//指定要儲存的地方

nsstring

*topath = [

nshomedirectory

() :

@"/library/data.archiver"

];nslog

(@"topath:%@"

,topath);

bool

success = [

nskeyedarchiver

archiverootobject

:dic 

tofile

:topath];

if(success)

//解歸檔

bool

succ = [

nskeyedunarchiver

unarchiveobjectwithdata

:[nsdata

datawithcontentsoffile

:topath]];

if(succ)

3 sqlite資料庫(是按照資料結構來組織,儲存和管理資料的倉庫),sqlite資料庫一種輕型的關聯式資料庫管理系統,它占用資源特別低,很適合移動裝置中使用,而且是開源免費的,使用時要新增sqlite3.0框架,基於c語言,順序,第三方框架ego(oc介面,),適合大資料量的儲存和查詢操作.

4core data,它不是資料庫,他可以使用資料庫、xml的方式來儲存資料.它以物件導向的形式儲存資料,可以不需要寫sql語句,適合大資料量的儲存和查詢,使用時需要匯入coredata框架

5.nsuserdefault和應用程式繫結的,放在應用程式內建的bundle的plist檔案中.

偏好設定**:

偏好設定

nsuserdefaults

*defaults = [

nsuserdefaults

standarduserdefaults

];//設值

[defaults 

setbool

:yes

forkey

:@"nii"

];[defaults 

setobject

:@"lily"

forkey

:@"haha"

];//同步資料

[defaults 

synchronize];

sqlite通過sql語句運算元據,coredata使用物件導向的方式運算元據 

sqlite資料庫,sqlite最新版本是3.0,使用前需要匯入libsqlite3.0dylib,sqlite3.0使用的是c的函式介面

二:運算元據局庫的流程

(1)開啟資料庫

(2)編譯sql語句

(3)執行sql語句

(4)銷毀sql語句

(5)關閉資料庫

三:常用的sql語句

/** ddl 資料定義語言 **/

(1)建立**

create

table

t_student (id

integer

, name

text

, age

integer);

create

table t_movie (id integer

primary

key,name text,director text);

create

table

t_movie (id

integer

primary

keyautoincrement

,name

text

,director

text);

create

table

ifnot

exists

t_movie (id

integer

primary

keyautoincrement

,name

text

, director

text)

(2)刪除**

drop

table

t_student;

/** dml 資料操作語言 **/ 

(1)插入一條資料,字串在sql用單引號

insert

into t_student values (1, '張三', 18);

insert

into t_student (name, age) values ('丁三', 90)

(2)修改、更新資料,如果你沒有指定條件(限定條件),全部會修改

update t_student set age = 20;

update t_student set age = 13 where id = 2;

(3)刪除表的記錄(內容)

delete

from t_student;

(4)條件的限定 or and

update t_student set age = 13 where id = 2 or id = 3;

update t_student set age = 99 where id >= 2;

/** dql 資料查詢語言 **/ 

select * from 

t_student; // 查詢所有資料

select id identifier, name s_namefrom t_student; // 查詢2欄位資料,取別名

select

*from t_student where age > 20;

select

*from t_student order

by age desc; // 預設asc,公升序

select count(*)from t_student;  // 查詢表中存在多少條記錄

select sum(age) from t_student;  // 查詢表age所有記錄之和

select max(age) from t_student  where id  = 2 or id  = 3;

select

*from t_student limit 0, 5;  // n * (n - 1), 6

資料持久化

資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...

資料持久化

首先是cocos2d x自己封閉的ccuserdefault跨平台的檔案儲存類,它是用的xml格式,具體操作非常類似於應用開發的ini檔案,可操作性不是很強,如果訪問比較複雜的資料,那就得自己動手去解析乙個字串,下面是示例 基本一看就懂 void userdefaulttest dotest els...

資料持久化

viewcontroller.m 資料持久化 created by dllo on 15 8 19.import viewcontroller.h import student.h inte ce viewcontroller end implementation viewcontroller vo...