Android ORM框架介绍之greenDao配置(一)

Android ORM框架介绍之greenDao配置(一)

greenDao简介:

image

greenDAO是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。

greenDao具备以下特点:
- 最大的性能(可能是Android最快的ORM)
- 最小的内存消耗
- 小库的大小(<100KB)保持你的建造时间低和避免65K方法限制
- 数据库加密:greendao支持SQLCipher来保持你的用户的数据安全
- 强大的社区:超过5 GitHub的恒星显示有强大和活跃的社区

greenDao的配置(方法一)

  1. 创建一个android应用,在应用的build文件中添加依赖包。
dependencies {
    ...
    compile 'org.greenrobot:greendao:3.1.0'
}

2.在项目中的main目录下新建一个java-gen目录,与java目录平级。

3.在应用的build文件中,关联。

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

如图所示:

Android ORM框架介绍之greenDao配置(一)_第1张图片

4.创建一个java项目,在java项目添加依赖库[注:java项目的创建]

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

如图所示

Android ORM框架介绍之greenDao配置(一)_第2张图片
5.在java项目中的main方法中写如下代码:

import org.greenrobot.greendao.generator.DaoGenerator;
import org.greenrobot.greendao.generator.Entity;
import org.greenrobot.greendao.generator.Schema;

public class MyClass {

    private static final int VERSION = 1;
    private static final String ENTITY_PACKAGE = "com.zhang.db.entity";
    private static final String DBO_PACKAGE = "com.zhang.db.dao";
    private static final String PATH = "C:\\MyWorkSpace\\Demo2\\greendao\\src\\main\\java-gen";
    private static final String BASE = "BaseModel";
    private static final String BASE_DAO = "BaseDao";
    private static final String MODEL="Model";
    private static final String MODEL_DAO="ModelDao";
    private static final String MODEL_TABLE_NAME="tb_model";

    public static void main(String[] args) {
        Schema schema = new Schema(VERSION, ENTITY_PACKAGE);//设置版本号,实体包名(model所在的包)
        schema.setDefaultJavaPackageDao(DBO_PACKAGE);//设置Dao层所在的包
        createBase(schema);
        createModel(schema);
    }

    private static void createBase(Schema schema) {
        Entity entity = schema.addEntity(BASE);
        entity.addIdProperty().unique().autoincrement();
        entity.addStringProperty("desc");
        entity.setClassNameDao(BASE_DAO);
        try {
            new DaoGenerator().generateAll(schema, PATH);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void createModel(Schema schema) {
        Entity entity =schema.addEntity(MODEL);//设置实体类的类名(就是Model类),如果不设置setTableName(),表示类名就是表名
        entity.addIdProperty().unique().autoincrement();//主键,唯一,自增(会生成相应的注解)
        entity.addStringProperty("name").notNull();//设置字段不为null
        entity.addIntProperty("age");//表中的字段名
        entity.addLongProperty("createTime");//表中的字段名
        entity.setClassNameDao(MODEL_DAO);//设置Dao的实体类的名称
        entity.setTableName(MODEL_TABLE_NAME);//设置数据库表名

        try {
            new DaoGenerator().generateAll(schema,PATH);//PATH就是android项目中的java-gen目录的绝对路径,通过Dao的生成器生成数据
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

6.执行java项目,成功后会在控制台打印log,同时在android项目的java-gen目录生成如下代码:

Android ORM框架介绍之greenDao配置(一)_第3张图片

Android ORM框架介绍之greenDao配置(一)_第4张图片


greenDao配置(方法二)

方法一是比较早的配置方法,greenDao官方提供了新的配置方式。

1.在应用的build文件中添加对应的依赖库,及相应的配置。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'
    }
}

apply plugin: 'org.greenrobot.greendao'

dependencies {
    ...
    compile 'org.greenrobot:greendao:3.1.0'
}

greendao {
    // 数据库schema版本,也可以理解为数据库版本号
    schemaVersion 1
    //  设置DaoMaster 、DaoSession、Dao包名
    daoPackage  'www.weshared.db.dao'
    //  设置DaoMaster 、DaoSession、Dao目录
    targetGenDir 'src/main/java'
    //  设置生成单元测试目录  
    //  targetGenDirTest  'xx/xx/xx'
    //  设置自动生成单元测试用例  
    //  generateTests  
}

2.在项目中创建一个javabean类,在该类上面使用@Entity注解,然后在make project。
具体操作如下图:

Android ORM框架介绍之greenDao配置(一)_第5张图片

make project之后生成的文件及目录

Android ORM框架介绍之greenDao配置(一)_第6张图片

你可能感兴趣的:(android提升)