Android数据库框架 - GreenDao轻量级的对象关系映射框架,永久告别sqlite

Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

对于我个人来说,我可能更加倾向于用GreenDao,所以今天也为大家带来了GreenDao的详细博客,希望大家喜欢,之前也详细介绍了ORM的思想,如果不明白可以先看一下前面的博文,这里就不多赘述了,我们新建一个工程

传说中的优点

最大性能(最快的 Android ORM) 易于使用API 高度优化 最小内存消耗

首先,我们查看Github上的集成步骤,先添加依赖 我们要添加

compile 'org.greenrobot:greendao:2.2.1'

同时也要添加Java的项目包

compile 'org.greenrobot:greendao-generator:2.2.0'

紧接着,我们在main目录下创建一个文件夹java-gen

然后继续在配置文件中添加 //仓库

sourceSets{ main{

java.srcDirs = ['src/main/java','src/main/java-gen'] } }

最后,新建一个Module,选择Java Library,创建成功后,我们在他的build.gradle下添加 compile 'org.greenrobot:greendao-generator:2.2.0'

二.实体类

到这里,我们的初步集成算是完成了,是不是比较麻烦,我们看

她说现在去看java-gen有生成代码,实际上我们去看并没有,因为我们需要NoteDao.java,一个数据缓存对象,那我们需要怎么去做呢?我们直接在Module的类里写了 package com.example;

import de.greenrobot.daogenerator.DaoGenerator; import de.greenrobot.daogenerator.Entity;

import de.greenrobot.daogenerator.Schema;

public class DaoMaker {

public static void main(String[] args) { //生成数据库的实体类,还有版本号

Schema schema = new Schema(1, \ addStudent(schema); //指定dao

schema.setDefaultJavaPackageDao(\ try {

//指定路径 new DaoGenerator().generateAll(schema, \ } catch (Exception e) { e.printStackTrace(); } }

/**

* 创建数据库的表 *

* @param schema */

public static void addStudent(Schema schema) { //创建数据库的表

Entity entity = schema.addEntity(\ //主键 是int类型 entity.addIdProperty(); //名称

entity.addStringProperty(\ //年龄

entity.addIntProperty(\ //地址

entity.addStringProperty(\ } }

写完这个时候我们要注意了,我们不能直接去运动这个工程,我们要单独编译这个java类。也就是右键

编译的时间有点点长,我们耐心等待一下就好了,这个时候我们可以看到控制台会打印相关的信息

这个时候你再去看java-gen目录,就会有东西了

很nice,这算是前期基本已经完工了,我们可以看他的原型图

三.核心类

可以看到,GreenDao是有自己创建的类的,我们来看看是什么类

DaoSession:会话层,操作具体dDao类,提供了基本的持久化操作方法,比如对实体对象的insert,load,update,refresh,delete的一些操作

XXDao:实际生成的Dao类,通常对应具体的java类,greenDao为每一个实体类创建一个Dao,他提供了比DaoSession更为具体的付费,比如count,loadALL和inserlnTx,批量插入

xxEntity:持久的实体对象,通常代表数据库row标准的java属性

Schema:实例数据schema,通过schema的版本和缺省的java包调用构造器 四.封装操作类

OK,了解的差不多了,我们就来实战操作一下吧!实战的时候,我们不需要在主Activity中放太多的逻辑代码,全部封装在一个数据库的操作类中其实是最好的,所以我们先新建一个类

package com.lgl.greendao;

import android.content.Context;

import com.student.dao.DaoMaster; import com.student.dao.DaoSession;

import de.greenrobot.dao.query.QueryBuilder; /**

* 数据库操作类

* Created by LGL on 2016/7/2. */

public class DaoManager {

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4