Android Greendao3.0框架的使用

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'
    }

好了,关于数据库迁移的问题,以后再说

猜你喜欢

转载自blog.csdn.net/ware00/article/details/70765791