GreenDao数据库之配置

Green的配置

- 第一步:添加代码仓库

- 第二步:greenDao生产代码插件

注意:这里需要build项目

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()	 // 添加代码仓库  步骤1
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
         //greenDao生产代码插件  步骤2
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    }
}

- 第三步:配置apply plugin

- 第四步:添加GreenDao依赖

- 第五步:配置GreenDao

注意: 这里需要build项目

apply plugin: 'com.android.application'
//第三步 配置apply plugin
apply plugin: 'org.greenrobot.greendao'
android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    defaultConfig {
        applicationId "demo.ht.com.greendao"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
//第五步:配置GreenDao
greendao {
    //数据库版本号,升级时修改
    schemaVersion 1
    //生成的DAO,DaoMaster和DaoSession的包路径。默认与表实体所在的包路径相同
    daoPackage 'demo.ht.com.greendao.db'
    //生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)
    targetGenDir 'src/main/java'
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

	//第四步:添加依赖
    implementation 'org.greenrobot:greendao:3.2.2' // add library
    implementation 'org.greenrobot:greendao-generator:3.2.2'
}

- 第六步:创建实体类,添加注解,生成相关文件,生成相关代码

注意:这里需要build文件,生成相关文件以及代码


 @Entity	//这个是必须加的 只有使用@Entity注释的Bean类才能被dao类操作;
 public class Bean {
	@Id
	private Long id;
	private String date;
	@Unique   //此字段的值唯一约束:不能重复
	private String name;
	private int age;
	@Transient
	private String type;
 }

这些是比较常用的注解:

  1. @Entity 只有使用@Entity注释的Bean类才能被dao类操作;
  2. @ID(autoincrement=true) 主键自增
  3. @ID 主键
  4. @Property (nameInDb = “name” ) 给数据库中的表名起名字,不写自动默认为成员变量名字
  5. @NotNull 属性不为空
  6. @Transient 使用该注释的属性不会被存入数据库中;
  7. @Unique 唯一性
  8. @Generated 提示开发者该属性不能被修改;并且实体类的方法,属性,构造器一旦被@Generated注释就不能被再次修改,否则或报错

- 第七步:配置application

public class MyApplication extends Application {
    private static MyApplication sInstance;
    private DaoMaster.DevOpenHelper mHelper;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
        setDatabase();
    }
    /**
     * 设置greenDao
     */
    private void setDatabase() {
        //通过DaoMaster内部类DevOpenHelper可以获取一个SQLiteOpenHelper 对象
        // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
        // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
        // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
        // 此处MyDb表示数据库名称 可以任意填写
        mHelper = new DaoMaster.DevOpenHelper(this, "MyDb", null);    // MyDb是数据库的名字,更具自己的情况修改
        SQLiteDatabase db = mHelper.getWritableDatabase();
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }
    public static MyApplication getInstance(){
        return sInstance;
    }
    public DaoSession getDaoSession(){
        return mDaoSession;
    }
}

-第八步:在清单文件申请application

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    ......
    ......

</application>

- 第九步:使用

//在代码中得到对象直接使用:
BeanDao beanDao = BaseApp.getInstance().getDaoSession().getBeanDao();

猜你喜欢

转载自blog.csdn.net/weixin_44819566/article/details/106466995