ORMLite与GreenDao的简单比较

作者: 程序猿老王 | 来源:发表于2017-04-08 00:02 被阅读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了。虽然开始可能比较难,学习成本有点高,但是我还是想学一学的。

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

    相关文章

      网友评论

        本文标题:ORMLite与GreenDao的简单比较

        本文链接:https://www.haomeiwen.com/subject/vfpkattx.html