美文网首页
greenDAO3的使用

greenDAO3的使用

作者: Yangxy_Lazy | 来源:发表于2018-03-24 18:58 被阅读0次

1、greenDAO3的基本介绍:
greenDAO3使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码。之前的版本则是通过建立一个独立的java工程来存放生成的文件。

2、greenDAO3的配置:
①在gradle的dependencies中导入最新版本的依赖:
compile 'org.greenrobot:greendao:3.0.1'
compile 'org.greenrobot:greendao-generator:3.0.0'
②配置gradle:gradle会自动去maven仓库下载一个gradle的插件,用来生成数据库相关的代码
apply plugin: 'org.greenrobot.greendao'

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}

③每次Make Project的时候,greenDAO回去扫描项目中的所有的@Entity的文件(所有的greenDAO中数据库的实体类),根据实体类生成DaoSession,DaoMaster以及所有实体类的Dao类,生成的默认目录是:build/generated/source/greendao,可以将该路径下生成的文件放到所需要的目录下。若不想移动生成的文件,则可以在gradle中自定义文件生成的路径:
greendao {
schemaVersion 1
daoPackage 'com.wyk.greendaodemo.greendao.gen'
targetGenDir 'src/main/java'
}

3、greenDao3的使用:
①编写实体文件:

import org.greenrobot.greendao.annotation.Entity;  
import org.greenrobot.greendao.annotation.Id;  
import org.greenrobot.greendao.annotation.Transient;  

@Entity  
public class User {  
    @Id  
    private Long id;  
    private String name;  
    @Transient  
    private int tempUsageCount; // not persisted  
}  

注解解释:
@Entity:将普通的java文件变成一个能够被greenDAO识别的数据库类型的实体类。
@Id:通过这个注解标记的字段必须是Long类型的,这个字段在数据库中表示它就是默认自增的。
@Transient:表示这个字段不会被写入数据库,只是作为普通的java类字段,用来临时存储数据,不会被持久化。

②编写实体文件后,点击MakeProject,greenDAO3会自动生成一些文件。(User中的get,set方法和一些构造函数,还生成了DaoMaster,DaoSession,UserDao)

③初始化数据库:
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(),"otes-db",null);
DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();

④插入数据:
User user = new User(null,"yangxy");
userDao.insert(user);

⑤查找数据:
List<User> userList = userDao.queryBuilder()
.where(UserDao.Properties.Id.notEq(999))
.orderAsc(UserDao.Properties.Id)
.limit(5)
.build().list();

⑥修改数据:修改数据的第一步是要把需要修改的条目给查出来,然后修改该条目,最后调用userDao的update方法。
User findUser = userDao.queryBuilder().where(UserDao.Properties.Name.eq("wyk")).build().unique();
if(findUser != null) {
findUser.setName(newName);
userDao.update(findUser);
Toast.makeText(MyApplication.getContext(), "修改成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MyApplication.getContext(), "用户不存在", Toast.LENGTH_SHORT).show();
}

⑦删除数据:先查询出需要删除的条目,然后调用userDao的deleteByKey将该条目的主键传入即可删除。

User findUser = userDao.queryBuilder().where(UserDao.Properties.Name.eq("wyk")).build().unique();
if(findUser != null){
userDao.deleteByKey(findUser.getId());
}

4、数据库的升级:
如果某张表修改了字段,或者新建了一张表,需要将build.gradle中的schemaVersion,否则当升级APP

相关文章

  • greenDAO3的使用

    1、greenDAO3的基本介绍:greenDAO3使用注解的方式定义实体类(entity),并且是通过安装gra...

  • greendao3配置

    Greendao3 配置 buildscript { repositories { mavenCentral() ...

  • GreenDao3的简单使用

    简介 GreenDAO是一个轻量、快速的ORM解决方案,它能高效地将对象映射到SQLite数据库,目前升级到了3....

  • GreenDao

    注解介绍:(参考自GreenDao3 使用说明:http://www.jianshu.com/p/4e6d72e7...

  • GreenDao3 使用入门笔记

    第一步 GreenDao插件引入 首先在工程的build.gradle文件中配置GreenDao插件 然后在使用模...

  • GreenDao3 使用说明

    GreenDao 3 一个将对象映射到 SQLite 数据库中的轻量且快速的ORM解决方案 资料 Github官网...

  • Android GreenDao 3.2 使用笔记

    前言 在使用GreenDao3的时候,网上看了部分参考的文章,最后发现只是把人家官网的东西又搬了一遍,不过还是要感...

  • GreenDao3使用时遇到的坑

    1.集成类时报错: Error:Execution failed for task ':app:greendao'...

  • GreenDao3基本配置和简单使用

    简介 greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。 参考 官网 http:...

  • Android数据库框架-----GreenDao3的相关使用和

    GreenDAO是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁;是一个将对象映射到SQLit...

网友评论

      本文标题:greenDAO3的使用

      本文链接:https://www.haomeiwen.com/subject/ubfccftx.html