您的位置:首页 > 移动开发 > Android开发

安卓 GreenDao 基本使用

2017-02-20 15:42 381 查看
转载自:http://blog.csdn.net/fengltxx/article/details/53708769

第一步:将GreenDao引入到项目中(以Studio为例)

1.在Project–>budld.gradle中配置如下:

dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
// 这是需要配置的地方
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'//GreenDao
}


2.在Modle–>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'

}`


配置完成后,同步工程就可以了.

第二步:编写实体类

School类:

@Entity
public class School {
@Id
private Long id;
private String name;
}


编写完这个普通的实体类后.

点击导航栏上的Build–>Make Project.

随后会看到这个实体类变身了. 如下:

/**
* ONE Goal,ONE Passion!
* Created by ${PK_Night} on 2016/12/12.
* comment:
*/
@Entity
public class School {
@Id
private Long id;
private String name;
@Transient
private int tempUsageCount; // not persisted
@Generated(hash = 2095953704)
public School(Long id, String name) {
this.id = id;
this.name = name;
}
@Generated(hash = 1579966795)
public School() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}


帮我们生成了部分代码.

注:生成代码后,不要在更改这个文件

而且GreenDao已经帮我们生成了DAO等.DAO位置如下



第三步:开始增删CRUD

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

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydb", null);
SQLiteDatabase db = helper.getWritableDatabase();
//       原生sql 语句
//  String sql = "insert into school values(3,'txx')";
// db.execSQL(sql);  // 可执行曾,删,改
//db.rawQuery(); 执行查询


既然拿到了SQLiteDatabase对象,就可以直接使用sql操作了.如果你觉得GreenDao仅仅让我们方便地拿到 SQLiteDatabase那就太小看它了.它也可以像hibernate一样,直接操作对象来进行CRUD.

第二种: 使用DaoSession 直接根据对象进行CRUD.

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydb2", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession session = daoMaster.newSession();


增:

school = new School((long)1,"fy");

session.insert(school);


删:

school = new School((long)1,"fy");
session.delete(school);


改:

school = new School((long) 1, "fynight");
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);
}


简单的GreenDao简单demo已经 OK!接下来说一说 实体类注解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android gradle