greenDAO系列1--概要

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    greenDAO是一个开源项目,旨在帮助Android开发者方便使用SQLite进行数据存储。SQLite是非常棒的嵌入式关系型数据库,但是使用它需要增加许多额外的工作。编写SQL语句,解析查询结果是一件苦差事。greenDAO就是为了解决这个问题:它将java对象映射到相应的数据库表(通常称为ORM)。这样就可用面向对象的方式进行存储,删除和查询java对象,节约开发时间,且可更加关注实际的问题。

greenDAO系列1--概要_第1张图片


greenDAO主要的设计目标

(1)最佳性能(或许是Android中最快的ORM)

(2)简易使用的接口

(3)针对Android高度优化

(4)极小的类库,注重本质


谁在使用greenDao

    有不少热门Android应用引用greenDAO,其中不乏千万装机量的应用,这说明其行业可靠性。在AppBrain上可查看当前的统计数据,下面是其中的部分统计截图。

greenDAO系列1--概要_第2张图片


特性

(1)对象/关系映射(ORM)

    greenDAO的本质是提供面向对象的接口将数据存储到关系型数据库SQLite中。只需定义数据模型,greenDAO就将生成java数据对象(实体)和DAO(data access objects数据访问对象)。这将节省许多烦人的代码去来回移动数据。除此之外,greenDAO还提供许多高级的ORM特性,如会话缓存,预加载,主动实体(active entities)

(2)性能

    greendDAO在性能上没有做任何折中。数据库便于储存大量的数据,因此速度是关键。使用greenDAO,大多数实体可以以每秒几千个实体的速度执行插入,更新和加载操作。我们对greenDAO的性能有绝对的信心,可以与其他ORM工具作比较。我们优先挑选了ORMLite,因为它在Android ORM工具中是比较受欢迎的。同样的实体,greenDAO插入和更新快2倍多,加载实体快4.5倍。在大多数应用应用中,加载速度是关键。

greenDAO系列1--概要_第3张图片

    (这是2011年10月23号的测试数据)

    除了greenDAO核心本身的高性能,其特性如会话缓存和智能预加载技术提供了额外的性能提升。

(3)类库小

        greenDAO的核心类库大小小于100k,索引引入greenDAO不会对APK包大小产生大的影响。

(4)主动实体

    如果你希望,实体可以是“主动”的:主动实体显然地决解了“关系”(你只需调用get方法),并提供更新、删除和刷新方法,方便持久化操作。(注:这里的关系是指数据库表之间的1:1,1:n,m:n关系,主动实体将在下面的章节详细介绍)

(5)支持protobuf协议

    greenDAO可以直接持久化protobuf对象到数据库。如果你通过protobuf与服务端通信,就不需要做其他映射,所有对普通实体的持久化操作同样适用protobuf对象。这应该是greenDAO独有的特性。

(6)代码生成

    greenDAO会生成Java数据对象(实体)和DAO对象。每个实体有相应的DAO对象,以达到最佳映射。(注:代码生成是greenDAO与采用注解的方式的ORM在设计思想的最大区别)

(7)开源

    greenDAO的源码在github上完全可见。源码中还包含了JUnit测试用例。这些用例包含了greenDAO的所有特性,这是一个非常好的方式学习greenDAO。





转载于:https://my.oschina.net/rVaAlxJLK31TP/blog/312338

你可能感兴趣的:(greenDAO系列1--概要)