最受歡迎的5個(gè)Android ORM框架

在開(kāi)發(fā)Android應(yīng)用時(shí)碟狞,保存數(shù)據(jù)有這么幾個(gè)方式啄枕,

一個(gè)是本地保存,一個(gè)是放在后臺(tái)(提供API接口)族沃,還有一個(gè)是放在開(kāi)放云服務(wù)上(如?SyncAdapter 會(huì)是一個(gè)不錯(cuò)的選擇)频祝。

對(duì)于第一種方式,即本地?cái)?shù)據(jù)存儲(chǔ)脆淹,如嵌入式SQLite常空,你可以選擇直接使用SQL語(yǔ)句、Content Provider 或 ORM(對(duì)象關(guān)系數(shù)據(jù)映射)盖溺。

對(duì)于 Android 應(yīng)用的開(kāi)發(fā)漓糙,主要是使用Java語(yǔ)言,所以適用于Java語(yǔ)言的一些ORM烘嘱,也能移植于 Android 平臺(tái)上昆禽。

下面是5個(gè)可用ORM的總體介紹:

1.?OrmLite

OrmLite 不是 Android 平臺(tái)專(zhuān)用的ORM框架蝗蛙,它是Java ORM。支持JDBC連接醉鳖,Spring以及Android平臺(tái)捡硅。語(yǔ)法中廣泛使用了注解(Annotation)。

官方網(wǎng)站:http://ormlite.com/sqlite_java_android_orm.shtml

2.?SugarORM

SugarORM 是 Android 平臺(tái)專(zhuān)用ORM盗棵。提供簡(jiǎn)單易學(xué)的APIs壮韭。可以很容易的處理1對(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)簽:

然后就可以從SugarORM擴(kuò)展需要保存的數(shù)據(jù)類(lèi):

public class User extends SugarRecord {

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

官方網(wǎng)站:http://satyan.github.io/sugar/getting-started.html

3.?GreenDAO

當(dāng)性能很重要時(shí)(數(shù)據(jù)訪(fǎng)問(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框架。

官方網(wǎng)站:http://greendao-orm.com/

4.?Active Android

Active Record(活動(dòng)目錄)是Yii乳规、Rails等框架中對(duì)ORM實(shí)現(xiàn)的典型命名方式形葬。Active Android 幫助你以面向?qū)ο蟮姆绞絹?lái)操作SQLite。

在你的項(xiàng)目中包含Active Android暮的,你需要在項(xiàng)目的 /libs 目錄下添加一個(gè)jar文件笙以。可以從Github中獲取源代碼并使用Maven進(jìn)行編輯冻辩。然后你應(yīng)該添加這些meta-data到你應(yīng)用程序的 AndroidManifest.xml 配置中:

然后在你的Activity中調(diào)用?ActiveAndroid.initialize() 方法:

public class MyActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ActiveAndroid.initialize(this);

//rest of the app

}

}

現(xiàn)在猖腕,你可以使用Java注解來(lái)創(chuàng)建模型類(lèi):

@Table(name = "User")

public class User extends Model {

@Column(name = "username")

public String username;

@Column(name = "password")

public String password;

public User() {

super();

}

public User(String username,String password) {

super();

this.username = username;

this.password = password;

}

}

官方網(wǎng)站:http://www.activeandroid.com/

5.?Realm

Realm 是一個(gè)將可以使用的Android ORM,基于C++編寫(xiě)恨闪,直接運(yùn)行在你的設(shè)備硬件上(不需要被解釋?zhuān)┨雀校虼诉\(yùn)行很快。它同時(shí)是開(kāi)源跨平臺(tái)的咙咽,iOS的代碼可以在GitHub找到老玛,你還可以找到Objective-C以及Swift編寫(xiě)的Realm使用實(shí)例。

官方網(wǎng)站:http://realm.io/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蜡豹,隨后出現(xiàn)的幾起案子麸粮,更是在濱河造成了極大的恐慌,老刑警劉巖余素,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豹休,死亡現(xiàn)場(chǎng)離奇詭異炊昆,居然都是意外死亡桨吊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)凤巨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)视乐,“玉大人,你說(shuō)我怎么就攤上這事敢茁∮拥恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵彰檬,是天一觀的道長(zhǎng)伸刃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)逢倍,這世上最難降的妖魔是什么捧颅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮较雕,結(jié)果婚禮上碉哑,老公的妹妹穿的比我還像新娘。我一直安慰自己亮蒋,他們只是感情好扣典,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著慎玖,像睡著了一般贮尖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趁怔,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天湿硝,我揣著相機(jī)與錄音,去河邊找鬼痕钢。 笑死图柏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的任连。 我是一名探鬼主播蚤吹,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了裁着?” 一聲冷哼從身側(cè)響起繁涂,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎二驰,沒(méi)想到半個(gè)月后扔罪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奥此。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片具伍。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤辜腺,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站乍恐,受9級(jí)特大地震影響评疗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茵烈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一百匆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瞧毙,春花似錦胧华、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至释漆,卻和暖如春悲没,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背男图。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工示姿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逊笆。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓栈戳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親难裆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子子檀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評(píng)論 25 707
  • afinalAfinal是一個(gè)android的ioc镊掖,orm框架 https://github.com/yangf...
    passiontim閱讀 15,401評(píng)論 2 45
  • 似曾亩进,有些人,與之共滄桑幾許缩歪; 似曾归薛;有些時(shí)候,也與君共月歸故里匪蝙; 似曾主籍,那或許是夢(mèng),拂袖轉(zhuǎn)身骗污,唯有紅塵意崇猫。 似曾...
    安小安zzz閱讀 513評(píng)論 9 2
  • 共計(jì)50
    xy78閱讀 237評(píng)論 0 0
  • 從小我就特別喜歡音樂(lè)沈条,總認(rèn)為喜歡音樂(lè)可能真的是受了遺傳需忿。 聽(tīng)說(shuō)爺爺年輕的時(shí)候會(huì)彈手風(fēng)琴,雖然我沒(méi)有見(jiàn)過(guò)爺爺彈手風(fēng)琴...
    晨戈閱讀 368評(píng)論 2 6