在开发Android应用时,保存数据有这么几个方式,

一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择)。

对于第一种方式,即本地数据存储,如嵌入式SQLite,你可以选择直接使用SQL语句、Content Provider 或 ORM(对象关系数据映射)。

对于 Android 应用的开发,主要是使用Java语言,所以适用于Java语言的一些ORM,也能移植于 Android 平台上。

下面是5个可用ORM的总体介绍:

1. OrmLite

OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。语法中广泛使用了注解(Annotation)。

官方网站:http://ormlite.com/sqlite_java_android_orm.shtml

2. SugarORM

SugarORM 是 Android 平台专用ORM。提供简单易学的APIs。可以很容易的处理1对1和1对多的关系型数据,并通过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本操作。

要启用SugarORM,需要在你的应用程序 AndroidManifest.xml 配置中添加如下meta-data标签:

<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扩展需要保存的数据类:

public class User extends SugarRecord<User> {String username;String password;int age;@IgnoreString bio; //this will be ignored by SugarORMpublic User() { }public User(String username, String password,int age){this.username = username;this.password = password;this.age = age;}
}

要添加一个User,代码如下:

User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database

官方网站:http://satyan.github.io/sugar/getting-started.html

3. GreenDAO

当性能很重要时(数据访问频繁),GreenDao是一个很快的解决方案,它能够支持数千条记录的CRUD每秒,和OrmLite相比,GreenDAO要快几乎4.5倍。(准确数据请自行benchmark)。

GreenDAO小于100KB,所以对于应用程序APK的大小影响很小。

这里有一个教程,演示如何使用Android Studio,在Android应用程序中使用GreenDAO框架。

官方网站:http://greendao-orm.com/

4. Active Android

Active Record(活动目录)是Yii、Rails等框架中对ORM实现的典型命名方式。Active Android 帮助你以面向对象的方式来操作SQLite。
在你的项目中包含Active Android,你需要在项目的 /libs 目录下添加一个jar文件。可以从Github中获取源代码并使用Maven进行编辑。然后你应该添加这些meta-data到你应用程序的 AndroidManifest.xml 配置中:

<meta-data android:name="AA_DB_NAME" android:value="my_database.db" />
<meta-data android:name="AA_DB_VERSION" android:value="1" />

然后在你的Activity中调用 ActiveAndroid.initialize() 方法:

public class MyActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActiveAndroid.initialize(this);//rest of the app}
}

现在,你可以使用Java注解来创建模型类:

@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;}
}

官方网站:http://www.activeandroid.com/

5. Realm

Realm 是一个将可以使用的Android ORM,基于C++编写,直接运行在你的设备硬件上(不需要被解释),因此运行很快。它同时是开源跨平台的,iOS的代码可以在GitHub找到,你还可以找到Objective-C以及Swift编写的Realm使用实例。

官方网站:http://realm.io/

最受欢迎的5个Android ORM框架相关推荐

  1. Android ORM 框架:GreenDao 数据库升级

    本文作者:Speedy CSDN 专栏:blog.csdn.net/speedystone 掘金专栏:juejin.im/user/57e082- 前言 在 Android ORM 框架:GreenD ...

  2. Android ORM框架GreenDao用法

    Android ORM框架GreenDao用法 0 简介 android 上的ORM框架主要有两个:ormlite 和 GreenDAO,本篇主要介绍GreenDao的用法,原因是GreenDAO的速 ...

  3. android的orm框架有哪些,android orm 框架有哪些

    1.Afinal Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp.通过finalAc ...

  4. Android ORM 框架之 greenDAO 使用心得

    前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM  ...

  5. Orm框架介绍和常见的Android Orm框架

    ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中. 先介绍一下ORM的概念,以前也一直听说 ...

  6. android ORM框架的性能简单测试(androrm vs ormlite)

    2019独角兽企业重金招聘Python工程师标准>>> 前言 看了一下现在的android设备,性能都不差,就懒得直接用sqlite,直接上ORM框架把,上网搜了一圈,觉得andro ...

  7. Android ORM框架 GreenDao 的使用详解

    一.前言 关于 Android 中常用的数据存储方式我们前面已经讲了 Sp 存储 和 文件存储,但是对于数据量比较大,并且结构复杂的数据我们想要存储只能通过数据库进行处理,Android 中提供了一个 ...

  8. android ORM框架LitePal 封装SQLite

    LitePal的基本用法 虽说LitePal宣称是近乎零配置,但也只是"近乎"而已,它还是需要进行一些简单配置才可以使用的,那么我们第一步就先快速学习一下LitePal的配置方法. ...

  9. android ORM 框架 search

    1. ORMLite 特性: 通过在类上添加注解设置类 强大抽象DAO类 QueryBuilder 可以灵活的构造简单和复杂的查询语句 支持MySQL, Postgres, Microsoft SQL ...

最新文章

  1. [转帖]SAP初级学习者一句话入门06—PS
  2. Android进阶:七、Retrofit2.0原理解析之最简流程【上】
  3. QT的QPen类的使用
  4. LeetCode 430. 扁平化多级双向链表(DFS)
  5. 理解Hinton的Capsule Networks1
  6. Android图片特效处理之图片叠加
  7. 如何改变php的语言变中文,修改Yii2的默认语言language为中文zh-CN的方法
  8. _id随机的 es_es 的数据操作
  9. 智能优化算法:未来搜索算法-附代码
  10. Oracle在线撤销表空间,Oracle创建、管理撤销表空间
  11. python 排队论_建模算法(七)——排队论模型
  12. fastadmin 表格文字实现换行
  13. 关于目前CIM(BIM+GIS)行业的一些看法
  14. 参加百度开放云编程马拉松后一点总结
  15. 汽车零部件生产质量安全,路在何方?
  16. 非均匀三次B样条曲线插值实现及MATLAB代码
  17. 设置-安全-手机加密功能解说
  18. 【Axure】Axure RP制作日期控件
  19. adf被打开_ADF格式文件 如何打开ADF文件 ADF是什么格式的文件 用什么打开 - The X Online Tools...
  20. 软件设计是怎样炼成的——Gregory T. Brown

热门文章

  1. 力扣刷题记录-单调栈相关题目
  2. RHEL6.4启动一直在加载界面,无法进入图形化界面的解决办法
  3. 算法导论Van Emde Boas树
  4. 含稀土配合物粒径小/发色性能好的聚苯乙烯荧光微球/交联羧基聚苯乙烯微球/单分散荧光微球/红色荧光微球
  5. 【云和恩墨大讲堂】戴明明 - 基于 PCIE 闪存卡的 Oracle 数据库使用
  6. SCP指令错误解决方法
  7. 机器学习从公理到算法
  8. h3c服务器查看硬盘信息,华三服务器 3.5寸 硬盘
  9. 知道服务器地址上传网页文件,修改的网页怎么上传到服务器地址
  10. 永磁同步电机矢量控制(一)—— 建立数学模型