Android ORM框架介绍之greenDao配置(一)
greenDao简介:
greenDAO是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。
greenDao具备以下特点:
- 最大的性能(可能是Android最快的ORM)
- 最小的内存消耗
- 小库的大小(<100KB)保持你的建造时间低和避免65K方法限制
- 数据库加密:greendao支持SQLCipher来保持你的用户的数据安全
- 强大的社区:超过5 GitHub的恒星显示有强大和活跃的社区
greenDao的配置(方法一)
- 创建一个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']
}
}
如图所示:
4.创建一个java项目,在java项目添加依赖库[注:java项目的创建]
compile 'org.greenrobot:greendao-generator:3.1.0'
如图所示
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目录生成如下代码:
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之后生成的文件及目录