Markdown版本笔记 | 个人GitHub首页 | 个人博客 | 个人微信 | 个人邮箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
ORM数据库框架 SQLite 经常使用数据库框架比较java
Demoreact
这些ORM框架的实现方式主要有如下几种:android
注解
。分为运行时注解
(Retention为RUNTIME),编译时注解
(另外两种Retention),运行时注解其实也是利用了反射的原理,非运行时注解通常都是用于(编译时)生成代码的反射
。除非运行前已经自动生成了代码,不然能够确定就是经过反射方式实现的。直接生成代码
。通常是经过程序根据注解
自动生成须要的代码。经过运行时注解或反射去创建数据表和实体的关系会致使性能比较低
。从性能角度出发,应该选择使用编译时注解或代码生成的框架。固然,成熟程度,文档资料等也是考量点。git
GitHub
greenDAO与其余常见的ORM框架不一样,其原理不是根据反射进行数据库的各项操做
,而是一开始就人工生成业务须要的Model和DAO文件
,业务中能够直接调用相应的DAO文件进行数据库操做,从而避免了因反射带来的性能损耗和效率低下。github
以查询为例,其首先是建立数据库,而后在SQLiteOpenHelper.onCreate
方法中根据已生成的model建立全部的表,而db.query其实就是Android原生的查询操做
,只不过参数是通过DAO文件处理过的,无需手动匹配。sql
因为须要人工生成model和DAO文件,因此greenDAO的配置就略显复杂。数据库
优势:效率高,速度快,文件较小,占用更少的内存,操做实体灵活
缺点:学习成本较高。小程序
GitHub
基于注解和反射
的的方式,致使ormlite性能有着必定的损失(运行时注解其实也是利用了反射的原理)api
OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM
。支持JDBC链接,Spring以及Android平台。语法中普遍使用了运行时注解。安全
优势:文档较全面,社区活跃,有好的维护,使用简单,易上手。
缺点:基于反射,效率较低(GreenDAO比OrmLite要快几乎4.5倍)
GitHub
An Android library that makes developers use SQLite database extremely easy.
特色
GitHub
A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
特色
编译时注解
生成,不会致使性能瓶颈。SQLCipher
加密,支持Content Provider Generation。GitHub
官网
Active record[活动目录] style SQLite persistence[持久化] for Android
Active Record是Yii、Rails等框架中对ORM实现的典型命名方式。Active Android 帮助你以面向对象的方式来操做SQLite。
GitHub
官网
Insanely easy way to work with Android Database.
SugarORM 是 Android 平台专用ORM。提供简单易学的APIs,能够很容易的处理1对1和1对多的关系型数据,并经过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本操做。
NoSQL是趋势。其实对关系型数据库引入ORM,就是实现了对象型数据库要作的事情。
Realm is a mobile database: a replacement for SQLite & ORMs
基于C++编写,直接运行在你的设备硬件上(不须要被解释),所以运行很快。
Realm是一个直接在手机,平板电脑或可穿戴设备中运行的移动数据库。 此存储库包含Realm的Java版本的源代码,该版本目前仅在Android上运行。
特征:
ObjectBox是一个超快的面向对象数据库,具备强大的关系支持[strong relation support]。 ObjectBox是嵌入到您的Android,Linux,macOS或Windows应用程序中。
特性:
2018-8-17