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
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
相关文章推荐
- Druid连接池四(学习笔记)
- 数据结构之栈的顺序表实现
- Android-ListView详解(SimpleAdapter,ArrayAdapter,BaseAdapter,OnItenClickListener,OnScrollListener)
- Druid连接池三(学习笔记)
- #317 (div.2) D. Minimization
- ubuntu如何切换到root用户(转)
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
- Linux内核工程导论——前言
- oracle学习笔记——约束条件
- 二叉树三种遍历非递归实现
- 均匀圆并生成三角形内随机点
- oracle学习笔记——索引
- UVa:1611 Crane(贪心)
- 去哪网实习总结:JavaWeb配置404页面(JavaWeb)
- DirectX API 编程起步 #01 项目设置
- java-多线程-线程池
- 【MVC架构】——如何利用Json在View和Controller之间传递数据
- CodeForces 252A-Valera and Antique Items
- Navicat for MySql 导入txt数据时1366错误
- 股票、基金投资方案总结