GreenDao数据存储的使用

2018-07-31  本文已影响253人  RoboyCore

1、配置GreenDao插件

1*在主目录build.gradle配置插件路径

buildscript {
    repositories {
      jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'

2*在工程目录运用插件并添加依赖

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'

3依赖

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
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 'org.greenrobot:greendao-generator:3.2.0'

}

4*在工程目录android下添加greedao实体类转换自动生成路径

android {
compileSdkVersion 24
buildToolsVersion "25.0.0"

defaultConfig {
    applicationId "mobi.xiaowu.greendao"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
greendao{
    schemaVersion 1//版本
    targetGenDir 'src/main/java'
    daoPackage 'mobi.xiaowu.greendao.dao'
}

2.GreenDao使用

给实体类内容必须是基本类型,并且@Entity要声明在保存的数据类当中

@Id 主键关键字,可以设置autoincrement
@Transient 忽略该字段的关键字

写完注解后重新编译下即可在配置的目录下自动生成daoMaster、daoSession、daoXXX等实体类

 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"myDao.db");//通过自动生成的Master类开启Dao帮助类
    DaoMaster master = new DaoMaster(helper.getWritableDatabase());//开启数据库读取
    DaoSession daoSession = master.newSession();//使用自动生成的Session
    mDao = daoSession.getResultDao();//获取自动生成的dao实体类

mDao.insert(entity);//存储实体类
Result load = mDao.load(mList.get(position).id);//获取实体类数据

1、在主目录build.gradle配置插件路径

GreenDao注意事项

在使用GreenDao时3.2.2版本我发现Greendao一直打印
Didn't find class "net.sqlcipher.database.SQLiteOpenHelper”解决办法
但是并不影响正常使用,如果你保存的数据不涉及到安全的话,完全不用理会。
但是对我这种有强迫症的人来说,每次调试都看到打印一堆这种日志我就会很难受,所以就查阅了一些资料解决了,下面是解决办法。
打印这些日志其实是提示我们数据库没有加密,那么,我们给数据库加密即可。

首先引入一个第三方库:
https://www.zetetic.net/sqlcipher/sqlcipher-for-android/

implementation 'net.zetetic:android-database-sqlcipher:3.5.7@aar'

greendao如何使用网上有很多资料了。这里我就直接用了

在Application中初始化,获取数据库时用getEncryptedWritableDb获取即可,123为密码,密码自己随便设。

private void initGreenDao() {
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "user.db", null);
        //Database dataBase1 = helper.getWritableDb();
        Database database = helper.getEncryptedWritableDb("123");

        daoSession=new DaoMaster(database).newSession();
    }
上一篇下一篇

猜你喜欢

热点阅读