greenDAO系列1--概要

摘要  greenDAO是针对Android的非常优秀ORM类库,简化和方便开发者对SQLite的操作。下面的一系列文章是对greenDAO官网的翻译,能力有限,翻译不一定到位,大家可以参考其官网:http://greendao-orm.com/

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


greenDAO主要的设计目标

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

(2)简易使用的接口

(3)针对Android高度优化

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


谁在使用greenDao

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


特性

(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倍。在大多数应用应用中,加载速度是关键。

    (这是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。


本文转自:http://my.oschina.net/u/1052509/blog/312338

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值