Android 数据库greenDAO基础

来源:互联网 发布:恒生指数看盘软件 编辑:程序博客网 时间:2024/05/16 17:42

一直以来写Android项目用到数据库时都会用到SQLite,现在写一下自己用到的第三方框架  greenDAO的使用


1.greenDAO简介

greenDAO是一个开源的Android ORM使得SQLite数据库开发又有趣。它使开发人员从数据库处理低级需求而节省开发时间。SQLite是一个很棒的嵌入式关系数据库。不过,编写SQL和解析查询结果相当繁琐和耗时的任务。greenDAO释放你从这些通过将Java对象映射到数据库表(称为ORM对象/关系映射)。这样你可以存储、更新、删除和查询的Java对象使用一个简单的面向对象的API。(直接翻译的官方英文简介)



附官方链接:http://greenrobot.org/greendao/



2.greenDAO的特性

1).最大的性能(Android可能最快的ORM);我们的基准是开源易于使用的api覆盖关系和连接

2).最小的内存消耗小库大小(< 100 kb),放低你的构建时间,避免65 k的方法限制

3).数据库加密:greenDAO支持SQLCipher保证用户的数据安全

4).强大的社区:超过5.000 GitHub恒星显示有一种强烈的和活跃的社区



3.GREENDAO 设计的主要特点 
1). greenDAO 性能远远高于同类的 ORMLite 
2). greenDAO 支持 protocol buffer(protobuf) 协议数据的直接存储,如果你通过 protobuf 协议与服务器交互,将不需要任何的映射。 
3). 与 ORMLite 等使用注解方式的 ORM 框架不同,greenDAO 使用「Code generation」的方式,这也是其性能能大幅提升的原因。



4.GreenDao 3.0改动:

   使用过GreenDao的同学都知道,3.0之前需要通过新建GreenDaoGenerator工程生成Java数据对象(实体)和DAO对象,非常的繁琐而且也加大了使用成本。

GreenDao  3.0最大的变化就是采用注解的方式通过编译方式生成Java数据对象和DAO对象。


5.核心的classes


DaoMaster:

DaoMaster保存了数据库对象和管理DAO类的classes,其提供了一些静态方法创建和删除表,内部类OpenHelper和DevOpenHelper 实现了SQLiteOpenHelper并创建数据库的框架。

DaoSession:
管理所有可用的DAO对象,可以通过getter方法获得。DaoSession还提供了一些通用的持久性方法比如插入、加载、更新,刷新和删除实体。

DAOs:
数据访问对象,每一个实体类都有对应的greenDAO对象。

Entities:
实体类对象


6.配置

  • schemaVersion: 数据库schema版本,也可以理解为数据库版本号
  • daoPackage:设置DaoMaster 、DaoSession、Dao包名
  • targetGenDir:设置DaoMaster 、DaoSession、Dao目录
  • targetGenDirTest:设置生成单元测试目录
  • generateTests:设置自动生成单元测试用例

实体@Entity注解
  • schema:告知GreenDao当前实体属于哪个schema
  • active:标记一个实体处于活动状态,活动实体有更新、删除和刷新方法
  • nameInDb:在数据中使用的别名,默认使用的是实体的类名
  • indexes:定义索引,可以跨越多个列
  • createInDb:标记创建数据库表

基础属性注解
  • @Id :主键 Long型,可以通过@Id(autoincrement = true)设置自增长
  • @Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名 举例:@Property (nameInDb="name")
  • @NotNul:设置数据库表当前列不能为空
  • @Transient :添加次标记之后不会生成数据库表的列

索引注解
  • @Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
  • @Unique:向数据库列添加了一个唯一的约束

关系注解
  • @ToOne:定义与另一个实体(一个实体对象)的关系
  • @ToMany:定义与多个实体对象的关系



0 0
原创粉丝点击