zoukankan      html  css  js  c++  java
  • GreenDao3.2的简单使用

    Android -- GreenDao3.2的简单使用
    http://www.cnblogs.com/wjtaigwh/p/6394288.html

    https://github.com/greenrobot/greendao

    GreenDao是使用ORM(Object RelationShop Mapping)对象关系映射,就是通过GreenDao将数据库和Bean关联起来有以下优点:

    • 存取速度快

    • 支持数据库加密

    • 轻量级

    • 激活实体

    • 支持缓存

    • 代码自动生成

    首先要在Project中的build中添加如下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.3'
     
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
        }
    }
     
    allprojects {
        repositories {
            jcenter()
        }
    }
     
    task clean(type: Delete) {
        delete rootProject.buildDir
    }

    再在Module中的build添加引用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    apply plugin: 'com.android.application'
    //使用greendao
    apply plugin: 'org.greenrobot.greendao'
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
     
        defaultConfig {
            applicationId "com.qianmo.greendaotest"
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
     
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     
        }
        //greendao配置
        greendao {
            //版本号,升级时可配置
            schemaVersion 1
    //        daoPackage 'com.qianmo.greendaotest.gen'
    //        targetGenDir 'src/main/java'
        }
     
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
     
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        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:25.1.1'
        compile 'com.android.support:design:25.1.1'
        compile 'org.greenrobot:greendao:3.2.0' //greendao依赖
     
        testCompile 'junit:junit:4.12'
    }

      这样就配置成功了,接着是简单的使用。

    • @Entity:告诉GreenDao该对象为实体,只有被@Entity注释的Bean类才能被dao类操作
    • @Id:对象的Id,使用Long类型作为EntityId,否则会报错。(autoincrement = true)表示主键会自增,如果false就会使用旧值
    • @Property:可以自定义字段名,注意外键不能使用该属性
    • @NotNull:属性不能为空
    • @Transient:使用该注释的属性不会被存入数据库的字段中
    • @Unique:该属性值必须在数据库中是唯一值
    • @Generated:编译后自动生成的构造函数、方法等的注释,提示构造函数、方法等不能被修改
    public class BaseApplication extends Application {
        private static DaoSession daoSession;
     
        @Override
        public void onCreate() {
            super.onCreate();
     
            //配置数据库
            setupDatabase();
        }
     
        /**
         * 配置数据库
         */
        private void setupDatabase() {
            //创建数据库shop.db
            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this"shop.db"null);
            //获取可写数据库
            SQLiteDatabase db = helper.getWritableDatabase();
            //获取数据库对象
            DaoMaster daoMaster = new DaoMaster(db);
            //获取dao对象管理者
            daoSession = daoMaster.newSession();
        }
     
        public static DaoSession getDaoInstant() {
            return daoSession;
        }
     
    }

    这里我们需要创建一个Application,在代码中初始化数据库的基本数据,这里要讲解这下面这三个类

    • DevOpenHelper:创建SQLite数据库的SQLiteOpenHelper的具体实现

    • DaoMaster:GreenDao的顶级对象,作为数据库对象、用于创建表和删除表

    • DaoSession:管理所有的Dao对象,Dao对象中存在着增删改查等API

    这里注意一下我们要编译一下我们的工程(ctrl+F9),因为上面三个类是运行时创建的,还有相应的Shop中的set和get方法及构造函数

  • 相关阅读:
    [转]给定单链表,检测是否有环。如果有环,则求出进入环的第一个节点
    二叉树的后序遍历
    求二叉树叶子节点的个数
    随笔
    两个免费转换视频的软件,实现服务器端Video2FLV
    自制Flash FLV视频播放器
    Flash取得外部WEB参数的方法
    [转]javascript小技巧,超强推荐
    c#设计模式(转)
    ffmpeg和Mencoder使用实例小全
  • 原文地址:https://www.cnblogs.com/bluestorm/p/9449042.html
Copyright © 2011-2022 走看看