Android研究院Android知识安卓开发

ORMLite与GreenDao的简单比较

2017-04-08  本文已影响569人  程序猿老王

以前由于项目实时性要求比较高,所以一直没有用数据库;即使需要存储数据也是一些简单的数据,用SharedPreferences就足够了,项目中就一直没加入数据库。过段时间项目可能有存储数据的需求,就提前准备一下。怎么做比较好。现在开源的ORM框架也比较多,对于有选择困难症的我又是比较头疼的,不知道用哪个好,就在网上简单了解了下。

以前经常听说ORM,但一直不太了解具体是什么意思。今天简单了解了下,即Object Relational Mapping。就是对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。好处就是简化了数据库查询过程,用户可以访问期望数据,而不必理解数据库的底层结构。

能叫上名字的ORM框架也比较多,以前用过LitepalOrmLiteGreenDao是早就听说了,但是一直没用过。通过查一些论坛帖子什么的感觉还是OrmLiteGreenDao用的比较多一点,所以决定从这两个里边选一个(其实Litepal也很好用,配置也很简单)。

那么具体要选用哪个呢,就要对比一下。

1、OrmLite

基于注解和反射的的方式,导致ormlite性能有着一定的损失(注解其实也是利用了反射的原理)

优点

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

缺点

基于反射,效率较低

2、GreenDao

直接用官网的说法:

Maximum performance (probably the fastest ORM for Android); our benchmarks are open sourced too

Easy to use powerful APIs covering relations and joins

Minimal memory consumption

Small library size (<100KB) to keep your build times low and to avoid the 65k method limit

Database encryption: greenDAO supports SQLCipher to keep your user’s data safe

Strong community: More than 5.000 GitHub stars show there is a strong and active community

优点

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

缺点

学习成本高。

对比

这个是GreenDao官网上的对比,通过对比可以发现GreenDao插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite的4倍。这样呢我就更倾向于使用GreenDao了。虽然开始可能比较难,学习成本有点高,但是我还是想学一学的。

下一篇开始分享简单的用法和遇到的问题。

上一篇下一篇

猜你喜欢

热点阅读