greenDAO是时下Android最流行的一款ORM框架,其性能高,可加密,使用简洁,做android开发,如果会使用它,工作量会大大减小。其性能与其他ORM框架之比较可以查阅其官网。
目前greenDAO版本为3.1.1,greenDAO3相较于greenDAO2发生了较大的改变:可以使用注解声明schemas和实体。有两种方式使用greenDAO3,一种是使用java库的形式(greenDAO2的使用方法),一种是基于注解的形式(greenDAO3新增的)。
方式一,java库形式
1>在 src/main
目录下新建一个与 java 同层级的java-gen
目录,用于存放由 greendao生成的 Bean类、DAO类、DaoMaster、DaoSession 等类:
2> 在build.gradle(app)
,添加 sourceSets
与依赖:
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
dependencies {
compile 'org.greenrobot:greendao:3.1.0'
// This is only needed if you want to use encrypted databases
compile 'net.zetetic:android-database-sqlcipher:3.5.1'
}
3>新建java库模块:File -> New -> New Module -> Java Library
:
4>在java库模块build.gradle
的dependencies
中添加依赖:
dependencies {
compile 'org.greenrobot:greendao-generator:3.1.0'
}
5>编写java库模块生成的类,创建实体(表):
public class Generator {
public static void main(String[] args) throws Exception {
int version = 1;
String defaultPackage = "com.example.bean";
//创建模式对象,指定版本号和自动生成的bean对象的包名
Schema schema = new Schema(version, defaultPackage);
//指定自动生成的dao对象的包名,不指定则都DAO类生成在"com.example.bean"包中
schema.setDefaultJavaPackageDao("com.example.dao");
//添加实体
addEntity(schema);
//java-gen绝对路径
String outDir = "H:/Persion/app/src/main/java-gen";
//调用DaoGenerator().generateAll方法自动生成代码到之前创建的java-gen目录下
new DaoGenerator().generateAll(schema, outDir);
}
private static void addEntity(Schema schema) {
//添加一个实体,会自动生成实体类Persion
Entity persion = schema.addEntity("Persion");
//指定表名,如不指定,表名则为 Persion(即实体类名)
persion.setTableName("persion");
//给实体类中添加成员(即给表中添加列,并设置列的属性)
persion.addIdProperty().autoincrement();//添加Id,自增长
persion.addStringProperty("name").notNull();//添加String类型的name,不能为空
persion.addIntProperty("age");//添加Int类型的age
persion.addDoubleProperty("high");//添加Double类型的high
...
}
}
6>运行此java类,会自动在Android项目的java-gen
目录下生成bean类和DAO类:
7>转到下方 操作数据库
部分
代码说明
方式二,使用注解
1>在build.gradle(app)
中添加插件和依赖:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'
}
}
apply plugin: