CoreData,這個(gè)OC自帶的數(shù)據(jù)庫(kù)(希望可以這樣講),它也是封裝的SQLite,所以要精通還要了解熟悉SQLite
為雁山等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及雁山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、雁山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
可以用啊,當(dāng)然必須可以用啊,
keychain,NSUserdefault,plist,coredata,sqlite,文件的形式的存儲(chǔ),這6個(gè)一般是最常用的,其他的我也沒(méi)有用過(guò),也不知道性能咋樣,畢竟我也不是大神,
keychain,鑰匙串,那種無(wú)線的密碼保存一般都是用的是這個(gè),
NSUserdefault 這個(gè)適合存儲(chǔ)小型的數(shù)據(jù),一般就存?zhèn)€用戶的id,用來(lái)判斷是否登錄
plist 這個(gè)你看又好多改變字體的大小,主題,一般用的是plist
coredata和這個(gè)sqlist,,這兩個(gè)看你用哪個(gè)方便用哪個(gè),熟練用哪個(gè)就用哪個(gè),一般存儲(chǔ)歷史記錄,緩存很多的數(shù)據(jù),大型的數(shù)據(jù),一般用這2個(gè)其中1個(gè)
文件,文章,特別長(zhǎng)的文章,我一般用文件存儲(chǔ),畢竟存的東西少,這是一篇文章的所有內(nèi)容
1. OrmLite
OrmLite 不是 Android 平臺(tái)專用的ORM框架,它是Java ORM。支持JDBC連接,Spring以及Android平臺(tái)。語(yǔ)法中廣泛使用了注解(Annotation)。
2. SugarORM
SugarORM 是 Android 平臺(tái)專用ORM。提供簡(jiǎn)單易學(xué)的APIs??梢院苋菀椎奶幚?對(duì)1和1對(duì)多的關(guān)系型數(shù)據(jù),并通過(guò)3個(gè)函數(shù)save(), delete() 和 find() (或者 findById()) 來(lái)簡(jiǎn)化CRUD基本操作。
要啟用SugarORM,需要在你的應(yīng)用程序 AndroidManifest.xml 配置中添加如下meta-data標(biāo)簽:
meta-data android:name="DATABASE" android:value="my_database.db" /
meta-data android:name="VERSION" android:value="1" /
meta-data android:name="QUERY_LOG" android:value="true" /
meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" /
然后就可以從SugarORM擴(kuò)展需要保存的數(shù)據(jù)類(lèi):
public class User extends SugarRecordUser {
String username;
String password;
int age;
@Ignore
String bio; //this will be ignored by SugarORM
public User() { }
public User(String username, String password,int age){
this.username = username;
this.password = password;
this.age = age;
}
}
要添加一個(gè)User,代碼如下:
User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database
3. GreenDAO
當(dāng)性能很重要時(shí)(數(shù)據(jù)訪問(wèn)頻繁),GreenDao是一個(gè)很快的解決方案,它能夠支持?jǐn)?shù)千條記錄的CRUD每秒,和OrmLite相比,GreenDAO要快幾乎4.5倍。(準(zhǔn)確數(shù)據(jù)請(qǐng)自行benchmark)。
GreenDAO小于100KB,所以對(duì)于應(yīng)用程序APK的大小影響很小。
這里有一個(gè)教程,演示如何使用Android Studio,在Android應(yīng)用程序中使用GreenDAO框架。
4. Active Android
Active Record(活動(dòng)目錄)是Yii、Rails等框架中對(duì)ORM實(shí)現(xiàn)的典型命名方式。Active Android 幫助你以面向?qū)ο蟮姆绞絹?lái)操作SQLite。
5. Realm
Realm 是一個(gè)將可以使用的Android ORM,基于C++編寫(xiě),直接運(yùn)行在你的設(shè)備硬件上(不需要被解釋),因此運(yùn)行很快。它同時(shí)是開(kāi)源跨平臺(tái)的,iOS的代碼可以在GitHub找到,你還可以找到Objective C以及Swift編寫(xiě)的Realm使用實(shí)例。
一般的數(shù)據(jù)量很小的項(xiàng)目,沒(méi)必要使用數(shù)據(jù)庫(kù),如果只是保存寫(xiě)用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。
對(duì)于sqlite和coredata,只是兩種不同的存儲(chǔ)方法,一種是小型輕量級(jí)sqlite數(shù)據(jù)庫(kù),所有移動(dòng)設(shè)備經(jīng)常用到的,還有一種是蘋(píng)果針對(duì)ios操作系統(tǒng)開(kāi)發(fā)的coredata數(shù)據(jù)存儲(chǔ),可以說(shuō)是各有優(yōu)缺點(diǎn),一般如果數(shù)據(jù)庫(kù)要非常多的表格互相關(guān)聯(lián)最后查詢一條結(jié)果那么采用sqlite,如果存儲(chǔ)一些有規(guī)律的數(shù)據(jù)那么就會(huì)采用coredata,沒(méi)有哪個(gè)更好的說(shuō)法,只能說(shuō)這兩種都各有千秋,而我聽(tīng)前輩們說(shuō),coredata只是蘋(píng)果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作。
第一,我不是高手,第二,我可以分享下我的心得。一般的數(shù)據(jù)量很小的項(xiàng)目,沒(méi)必要使用數(shù)據(jù)庫(kù),如果只是保存寫(xiě)用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個(gè)項(xiàng)目都需要保存一個(gè)使用狀態(tài),不能每次打開(kāi)項(xiàng)目的時(shí)候都和第一次運(yùn)行一樣,完全新,要給人以使用過(guò)的感覺(jué)就要存儲(chǔ)一些歷史數(shù)據(jù)。如果怕影響用戶體驗(yàn)的話,可以多開(kāi)線程在后臺(tái)去對(duì)數(shù)據(jù)操作(數(shù)據(jù)量大的情況下),記得對(duì)線程要回收。如果你對(duì)保存數(shù)據(jù)比較迷茫的話,你可以google一下ios的四種數(shù)據(jù)持久化,對(duì)于sqlite和coredata,我個(gè)人認(rèn)為只是兩種不同的存儲(chǔ)方法,一種是小型輕量級(jí)sqlite數(shù)據(jù)庫(kù),所有移動(dòng)設(shè)備經(jīng)常用到的,還有一種是蘋(píng)果針對(duì)ios操作系統(tǒng)開(kāi)發(fā)的coredata數(shù)據(jù)存儲(chǔ),具體孰勝孰略還有待你自己去了解,一般如果我的數(shù)據(jù)庫(kù)要非常多的表格互相關(guān)聯(lián)最后查詢一條結(jié)果那么我會(huì)采用sqlite,如果存儲(chǔ)一些有規(guī)律的數(shù)據(jù)那么我會(huì)采用coredata,沒(méi)有哪個(gè)更好的說(shuō)法,只能說(shuō)這兩種都各有千秋,而我聽(tīng)前輩們說(shuō),coredata只是蘋(píng)果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作