您的位置:首页 > 数据库

GreenDao使用详解

2016-12-19 19:56 295 查看
1.导入GreenDAO
1>Project-->build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
// 这是需要配置的地方
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'//GreenDao
}2>Module-->build.gradle

apply plugin: 'com.android.application'
// 这是需要配置的地方---1
apply plugin: 'org.greenrobot.greendao'//GreenDao

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
...
}
// 需要配置的地方-----2
greendao {
schemaVersion 1    // 当前数据库结构的版本
//daoPackage 'com.greendao.gen' // 生成的DAO,DaoMaster和DaoSession的包名。默认是实体的包名。
//targetGenDir 'src/main/java'  //生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)。
// targetGenDirTest      //生成的单元测试的根目录。
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'

// 需要配置的地方 -----3    GreenDao
compile 'org.greenrobot:greendao:3.2.0'//GreenDao
compile'org.greenrobot:greendao-generator:3.0.0'

}
配置完成后,同步工程

2.实体类

@Entity
public class School {
@Id
private Long id;
private String name;
}
完成后,build--make project

注意:实体类中不能有内部类

添加@Id(autoIncrement=true)否则:

 android.database.sqlite.SQLiteConstraintException: PRIMARY KEY must be unique (code 19)
3.增删改查

第一种:使用SqliteOpenHelper对象去操作 

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydb", null);
SQLiteDatabase db = helper.getWritableDatabase();
第二种:使用DaoSession 直接根据对象进行CRUD

或是使用DaoSession获取xxxDao对象间接进行CRUD

增:

school = new School();
session.insert(school);
school = new School();
session.getSchoolDao().insert(school);
删:
school = new School();
session.delete(school);
school = new School();
session.getSchoolDao().delete(school);
改:
school = new School();
session.getSchoolDao().save(school);
school = new School();
session.update(school);

查:

//  条件查询
List<School> schools = session.queryRaw(School.class, "where name = ?", new String[]{"fy"});
for (int i = 0; i < schools.size(); i++) {
System.out.println("查询出来数据" + schools.get(i).getName());
}

// 查询所有
List<School> school = session.loadAll(School.class);
String schoolName = "";
for (int i = 0; i < school.size(); i++) {
schoolName += school.get(i).getName() + ",";
System.out.println("查询出来数据" + schoolName);
}
//  条件查询
List<School> schools = session.getSchoolDao().queryBuilder().limite(10).offset(5).list();
for (int i = 0; i < schools.size(); i++) {
System.out.println("查询出来数据" + schools.get(i).getName());
}

// 查询所有
List<School> school = session.getSchoolDao().queryBuilder().build();
String schoolName = "";
for (int i = 0; i < school.size(); i++) {
schoolName += school.get(i).getName() + ",";
System.out.println("查询出来数据" + schoolName);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库框架