Android数据库greenDAO框架用法和源码分析

greenDAO简介

greenDAO是一种Android数据库ORM(object/relational mapping)框架,与OrmLite、ActiveOrm、LitePal等数据库相比,单位时间内可以插入、更新和查询更多的数据,而且提供了大量的灵活通用接口。

如何开始

greenDAO需要提前生成Entity、DAO等文件,因此需要先建立一个java工程用于生成上述文件。具体可以参照 GitHub源码

1、 在Android Studio中选择File -> New -> New Module -> Java Library建立greenDAO Generate工程


2、 在新建的Java工程中新建一个Java类,该Java类用于生成项目所需的Entity、DAO等文件,以下是该类的模板代码:

public static void main(String[] args) throws Exception {
    Schema schema = new Schema(1000, "de.greenrobot.daoexample");

    addNote(schema);

    new DaoGenerator().generateAll(schema, "./DaoExample/src/main/java");
}

private static void addNote(Schema schema) {
    Entity note = schema.addEntity("Note");
    note.addIdProperty().primaryKey().autoincrement();
    note.addStringProperty("text").notNull();
    note.addStringProperty("comment");
    note.addDateProperty("date");
}
在main方法中,
Schema schema = new Schema(3, "de.greenrobot.daoexample");
该方法第一个参数用来更新数据库版本号,第二个参数为要生成的DAO类所在包路径。 然后进行建表和设置要生成DAO文件的目标工程的项目路径。
addNote(schema);
new DaoGenerator().generateAll(schema, "./DaoExample/src/main/java");
最后生成的文件会在目录./DaoExample/src/main/java/de/greenrobot/daoexample下看到。 创建一个实体类Entity就是对应一张表,默认表名就是类名,也可以自定义表名
Entity note = schema.addEntity("Note");     // 默认表名为类名
note.setTableName("CustomNote");            // 自定义表名
greenDAO会自动根据实体类属性创建表字段,并赋予默认值。例如在数据库方面的表名和列名都来源于实体类名和属性名。默认的数据库名称是大写使用下划线分隔单词,而不是在Java中使用的驼峰式大小写风格。例如,一个名为“CREATIONDATE”属性将成为一个数据库列“CREATION_DATE”。 可以设置一个自增长ID列为主键,也可以设置其他各种类型的属性:
note.addIdProperty().primaryKey().autoincrement();   // 自增长ID为主键
note.addStringProperty("text").notNull();            // text列不能为空

3、 最后还需要在Java工程下的build.gradle文件中引入greendao-generator

compile 'de.greenrobot:greendao-generator:2.1.0'

4、 执行Java工程,就可以生成项目所需的各种Entity、DAO等文件

5、 Android工程还需要引入greendao

compile 'de.greenrobot:greendao:2.1.0'
### 数据库常用操作 在正式开始进行增删改查操作前还需要简单的初始化,代码如下:
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
db = helper.getWritableDatabase();
da
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值