GreenDao 使用教程

在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。
所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。
GREENDAO 设计的主要目标:
- 一个精简的库
- 性能最大化
- 内存开销最小化
- 易于使用的 APIs
- 对 Android 进行高度优化
GREENDAO 设计的主要特点:
- greenDAO 性能远远高于同类的 ORMLite,具体测试结果可见官网
- greenDAO 支持 protocol buffer(protobuf) 协议数据的直接存储,如果你通过 protobuf 协议与服务器交互,将不需要任何的映射。
- 与 ORMLite 等使用注解方式的 ORM 框架不同,greenDAO 使用「Code generation」的方式,这也是其性能能大幅提升的原因。

在AndroidStudio中使用GreenDao

1.在 .src/main 目录下新建一个与 java 同层级的「java-gen」目录,用于存放由 greenDAO 生成的 Bean、DAO、DaoMaster、DaoSession 等类。
2.配置 Android 工程(app)的 build.gradle,添加如下代码

sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/main/java-gen']
        }
    }
    compile 'de.greenrobot:greendao:2.1.0'

3.建立纯Java工程
在java工程的build.gradle中添加dependences

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

我们的 Java 工程只有一个类,它的内容决定了「GreenDao Generator」的输出,你可以在这个类中通过对象、关系等创建数据库结构,
编写generator类
a.创建一个用于添加实体(Entity)的模式(Schema)

Schema schema = new Schema(1,"com.it.zjhz.dao");

两个参数分别代表:数据库版本号与自动生成代码的包路径
b.编写生成Bean和Dao的方法并调用

public static void addNote(Schema schema){
        Entity entity = schema.addEntity("Note");
        entity.addIdProperty();
        entity.addStringProperty("name").notNull();
        entity.addStringProperty("comment");
        entity.addDateProperty("date");
    }
addNote(schema);

c.

new DaoGenerator().generateAll
(schema,"H:/mian/GreenDaoTest/app/src/main/java-gen");

运行java工程,生成Bean、Dao、DaoMaster、DaoSession

执行增删查改操作

获取到Dao对象

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(MainActivity.this, "notes-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
NoteDao noteDao = daoSession.getNoteDao();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值