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

Android Greendao3.0框架的使用

2017-04-25 19:14 423 查看
1:添加工程依赖,在Project build.gradle和module build.gradle分别添加

Project build.gradle如下:

dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
}


module build.gradle如下:

apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
...
}
buildTypes {
release {
...
}
}
greendao{
schemaVersion 1
daoPackage 'com.aile.greendao.dao'
targetGenDir 'src/main/java'
}
}
dependencies {
.....
compile 'org.greenrobot:greendao:3.2.0'
}


2:根据需求新建实体类,比如User类,然后build-make project就会自动在前面定义的路径下生成一些包,比如DaoMaster- DaoSession- UserDao

public class User {
private Long id;
private String name;
private int age;
}


3:在自定义的Application里进行数据库的初始化并且在AndroidManifest.xml定义MyApplication

public class MyApplication extends Application{
private UserDao userDao;
private static MyApplication application = new MyApplication ();
public static MyApplication getMyApplication () {
return application;
}
public void onCreate() {
super.onCreate();
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext(),
"user.db", null);
DaoSession mDaoSession = new DaoMaster(devOpenHelper.getWritableDb()).newSession();
userDao = mDaoSession.getUserDao();
}
public UserDao getUserdao() {
return userDao;
}
public static Context getContext(){
return context;
}
}


4:上面三部配置完毕,下面就是具体的增删改查操作

增加数据:

User user = new User(null,"aile",23);
MyApplication.getUserdao().insert(user);


删除数据:

User user = MyApplication.getUserdao().queryBuilder().where(UserDao.Properties.Name.eq("aile")).build().unique();
if(user != null){
MyApplication.getUserdao().deleteByKey(user.getId());
}


更改数据:

User user = MyApplication.getUserdao().queryBuilder().where(UserDao.Properties.Name.eq("aile")).build().unique();
if(user != null) {
user.setName("mire");
MyApplication.getUserdao().update(user);
}


查询数据:

List<User> userList = MyApplication.getUserdao().queryBuilder()
.where(UserDao.Properties.Id.notEq(1))
.limit(5)
.build().list();
for reach遍历出数据


5:数据库简单升级

实体类的更改-这也是升级数据库的原因,比如:

public class User {
private Long id;
private String name;
private int age;
private String sex;
}


修改依赖库版本信息,如下:

greendao{
schemaVersion 2
daoPackage 'com.aile.greendao.dao'
targetGenDir 'src/main/java'
}


好了,关于数据库迁移的问题,以后再说
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息