Android GreenDao3.2配置及使用详解

来源:互联网 发布:安索夫矩阵 编辑:程序博客网 时间:2024/04/29 09:40

1.首先在Androidstudio 项目的build.grad 文件中引入一下文件

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.2.1'        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}

2.在module的build.gradle文件中添加greenDAO的插件,并引入相关类库

apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao'apply plugin: 'android-apt'android {    compileSdkVersion 24    buildToolsVersion "24.0.2"    defaultConfig {        applicationId "com.mvp.observer"        minSdkVersion 15        targetSdkVersion 24        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    greendao{        schemaVersion 1        targetGenDir 'src/main/java'    }}dependencies {    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {        exclude group: 'com.android.support', module: 'support-annotations'    })    compile 'com.android.support:appcompat-v7:24.2.1'    testCompile 'junit:junit:4.12'    compile 'org.greenrobot:greendao:3.2.0'    compile 'com.android.support:recyclerview-v7:24.2.1'}

3 .在项目包下创建实体类

@Entitypublic class User {    @Id    private Long id;    @Property(nameInDb = "USERNAME")    private String username;    @Property(nameInDb = "NICKNAME")    private String nickname;    @Generated(hash = 523935516)    public User(Long id, String username, String nickname) {        this.id = id;        this.username = username;        this.nickname = nickname;    }    @Generated(hash = 586692638)    public User() {    }    public Long getId() {        return this.id;    }    public void setId(Long id) {        this.id = id;    }    public String getUsername() {        return this.username;    }    public void setUsername(String username) {        this.username = username;    }    public String getNickname() {        return this.nickname;    }    public void setNickname(String nickname) {        this.nickname = nickname;    }}

@Entity表示这个实体类会在数据库中生成对应的表,

@Id表示该字段是id,注意该字段的数据类型为包装类型Long

@Property则表示该属性将作为表的一个字段,其中nameInDb看名字就知道这个属性在数据库中对应的数据名称

运行将项目进行编译,编译成功之后系统会帮助我们生成相应的构造方法和get/set方法,并且还会在我们的包下生成DaoMaster和DaoSession。那么这里常用的注解除了这几个之外,还有一个较常用的就是@Transient,该注解表示这个属性将不会作为数据表中的一个字段。就是这么简单。另外还有一些比如@NotNull表示该字段不可以为空,@Unique表示该字段唯一。这里的注解还是挺多的,小伙伴们有兴趣可以自行研究

4.创建dbmanager类初始化数据库

DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext(), "lenve.db", null);  DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());  DaoSession daoSession = daoMaster.newSession(); 

5.获取Dao

 userDao = daoSession.getUserDao();  

6.在dbmanager中实现增删该查 ,添加数据

User user = new User(null, "zhangsan" + random.nextInt(9999),"张三");  userDao.insert(user); \\其他大家查看Api实现即可

项目下载地址:https://github.com/androidDongdong/MvpAndObserver

0 0
原创粉丝点击