最受欢迎的5个Android ORM框架
在开发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框架相关推荐
- Android ORM 框架:GreenDao 数据库升级
本文作者:Speedy CSDN 专栏:blog.csdn.net/speedystone 掘金专栏:juejin.im/user/57e082- 前言 在 Android ORM 框架:GreenD ...
- Android ORM框架GreenDao用法
Android ORM框架GreenDao用法 0 简介 android 上的ORM框架主要有两个:ormlite 和 GreenDAO,本篇主要介绍GreenDao的用法,原因是GreenDAO的速 ...
- android的orm框架有哪些,android orm 框架有哪些
1.Afinal Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp.通过finalAc ...
- Android ORM 框架之 greenDAO 使用心得
前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM ...
- Orm框架介绍和常见的Android Orm框架
ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中. 先介绍一下ORM的概念,以前也一直听说 ...
- android ORM框架的性能简单测试(androrm vs ormlite)
2019独角兽企业重金招聘Python工程师标准>>> 前言 看了一下现在的android设备,性能都不差,就懒得直接用sqlite,直接上ORM框架把,上网搜了一圈,觉得andro ...
- Android ORM框架 GreenDao 的使用详解
一.前言 关于 Android 中常用的数据存储方式我们前面已经讲了 Sp 存储 和 文件存储,但是对于数据量比较大,并且结构复杂的数据我们想要存储只能通过数据库进行处理,Android 中提供了一个 ...
- android ORM框架LitePal 封装SQLite
LitePal的基本用法 虽说LitePal宣称是近乎零配置,但也只是"近乎"而已,它还是需要进行一些简单配置才可以使用的,那么我们第一步就先快速学习一下LitePal的配置方法. ...
- android ORM 框架 search
1. ORMLite 特性: 通过在类上添加注解设置类 强大抽象DAO类 QueryBuilder 可以灵活的构造简单和复杂的查询语句 支持MySQL, Postgres, Microsoft SQL ...
最新文章
- [转帖]SAP初级学习者一句话入门06—PS
- Android进阶:七、Retrofit2.0原理解析之最简流程【上】
- QT的QPen类的使用
- LeetCode 430. 扁平化多级双向链表(DFS)
- 理解Hinton的Capsule Networks1
- Android图片特效处理之图片叠加
- 如何改变php的语言变中文,修改Yii2的默认语言language为中文zh-CN的方法
- _id随机的 es_es 的数据操作
- 智能优化算法:未来搜索算法-附代码
- Oracle在线撤销表空间,Oracle创建、管理撤销表空间
- python 排队论_建模算法(七)——排队论模型
- fastadmin 表格文字实现换行
- 关于目前CIM(BIM+GIS)行业的一些看法
- 参加百度开放云编程马拉松后一点总结
- 汽车零部件生产质量安全,路在何方?
- 非均匀三次B样条曲线插值实现及MATLAB代码
- 设置-安全-手机加密功能解说
- 【Axure】Axure RP制作日期控件
- adf被打开_ADF格式文件 如何打开ADF文件 ADF是什么格式的文件 用什么打开 - The X Online Tools...
- 软件设计是怎样炼成的——Gregory T. Brown
热门文章
- 力扣刷题记录-单调栈相关题目
- RHEL6.4启动一直在加载界面,无法进入图形化界面的解决办法
- 算法导论Van Emde Boas树
- 含稀土配合物粒径小/发色性能好的聚苯乙烯荧光微球/交联羧基聚苯乙烯微球/单分散荧光微球/红色荧光微球
- 【云和恩墨大讲堂】戴明明 - 基于 PCIE 闪存卡的 Oracle 数据库使用
- SCP指令错误解决方法
- 机器学习从公理到算法
- h3c服务器查看硬盘信息,华三服务器 3.5寸 硬盘
- 知道服务器地址上传网页文件,修改的网页怎么上传到服务器地址
- 永磁同步电机矢量控制(一)—— 建立数学模型