Android数据库OrmLite、LitePal、GreenDao的区别

在以前的项目中用过数据储存第三方库,我觉得有必要记下来供大家参考学习下,有可能还有很多人在面对项目中要使用数据存储时还不知道该具体使用哪个三方库,以下介绍三种开源的Android数据库框架,当看了这篇文章后大家可以明确的使用哪个库更适合运用在项目中。

What is ORM?

对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM方法论基于三个核心原则:
1.简单:以最基本的形式建模数据。
2.传达性:数据库结构被任何人都能理解的语言文档化。
3.精确性:基于数据模型创建正确标准化的结构。

what is OrmLite?

它是基于注解和反射的的方式,导致ormlite性能有着一定的损失(注解其实也是利用了反射的原理,所以效率会较低)。进入官网

优点

文档全面,使用简单,易操作,社区活跃,有好的维护,使用简单易上手。

缺点

基于反射,执行速度慢。

what is LitePal?

它是基于对象关系映射模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。并且很轻量级,jar包不到100k,几乎零配置。github

优点

轻量级,零配置,配置简单,API简洁

缺点

使用反射影响性能,整个框架很关键的一点是id自增长,这支撑着整个框架的运转,但却使得我们很不方便维护已有的id属性(大部分服务端提供的数据都自带id),需要通过一定的转换,方能正常存储数据。

what is GreenDao?

它是基于将对象映射到sqlite数据库中的。这点跟LitePal一样,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。greendao官网, greenDAO的主要设计:
1.最大性能(最快的 Android ORM)
2.易于使用API
3.高度优化
4.最小内存消耗

优点

效率高、体积小、占用内存小

缺点

学习成本高、封装不完整。

三者之间的区别

ormlite基于反射和注解,效率比较低,占用内存大,而GreenDao、LitePal是对象关系映射,效率比较高,占用内存小,并且ormlite存储的文件要比GreenDao、LitePal存储的文件占用要大一点。

官网的图形比较

Android数据库OrmLite、LitePal、GreenDao的区别_第1张图片

总结

基于以上三种分别比较,我个人还是倾向于使用greendao,虽然学习成本高一些,封装的API还不算完整,但是存储查询的效率高一些,下一篇我重点记录一下如何使用greendao,需要查看学习的朋友 请点击查看。

你可能感兴趣的:(android)