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

来源:互联网 发布:阿里云网站空间误删 编辑:程序博客网 时间:2024/06/06 18:09

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']       }   }

如图所示:

image

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

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

如图所示

image
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目录生成如下代码:

image

image


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。
具体操作如下图:

这里写图片描述

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

这里写图片描述

0 0
原创粉丝点击