您的位置:首页 > 其它

greenDAO系列1--概要

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: