老司机带你学习GreenDao3

我知道你们没有图是不会进来的,就是简单的greenDao3的增删改查 和完全自动化升级字段且保留之前的数据!
老司机带你学习GreenDao3_第1张图片
IMG_0049.JPG
  • 步骤
  • 1.依赖 首先在project项目中的build.gradle 中添加如下代码
   buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //这个是黄油刀的注解

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
  }
}
  • 2.依赖 在modele中的build.gradle 中添加如下代码
      apply plugin: 'com.android.application'
      apply plugin: 'org.greenrobot.greendao'
    android {
      compileSdkVersion 23
      buildToolsVersion "25.0.0"
      
      
        buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}
//greendao配置
greendao {
    schemaVersion 6                       //版本号,升级时可配置
    daoPackage 'star.liuwen.com.endgreendao3.Dao'     //包名
    targetGenDir 'src/main/java'                 //生成目录
  
  
  
dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  testCompile 'junit:junit:4.12'
  compile 'com.android.support:appcompat-v7:23.0.1'
  compile 'org.greenrobot:greendao:3.2.0'
}
  • 3.然后可以新建一个实体类 然后点击工具栏中的build-----make project 会自动生成相应的dao类

@Entity
public class Test {
    @Id
    private Long id;
    private int url;
    private String name;
    private String desc;
}
  • 切记 id一定是long型的 不然插入数据的时候会报错的
  • 4.升级不删除老数据

public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {


    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        Log.e("greenDAO",
                "Upgrading schema from version " + oldVersion + " to " + newVersion + " by migrating all tables data");
         //完全自动升级本地数据库 要升级那个bean 只需要调用下面这个方法 
        // MigrationHelper.getInstance().migrate(db, xxx.class);
        MigrationHelper.getInstance().migrate(db, TestDao.class);
    }
}
  • 上面图 我是升级了一个desc的字段 发现之前的数据依旧保存 记得 要添加某个实体的字段 schemaVersion 一定要大于当前版本 也就说当前版本是6 那么升级的需 要设置为7 才会有保存之前数据的作用 大家可以多试几次.

  • 5.具体使用方法可以看代码了。代码才是最好的老师

    下面是Demo地址

https://github.com/liuwen370494581/greenDao3

喜欢的盆友麻烦点个赞 非常感谢了。。。。

你可能感兴趣的:(老司机带你学习GreenDao3)