转载

Andrid数据库框架——greenDAO(一)

我们正常项目开发中,经常会用到数据库。Andorid中自带SQLite数据库,SQLite是一个嵌入式关系数据库,我们在使用它的时候,需要些很多sql语句,查询解析比较耗费时间。特别是对有些Android开发人员开说对sql语句不是很熟悉,拼错一点可能就需要浪费很多时间。所以很多时候我们使用Android中SQLite的时候都会使用一些ORM框架来简化我们的工作量。

ORM :对象关系映射 。java中我们都习惯于操作对象。ORM就是帮我们把数据库中的数据映射成对象方便我们操作。

市场是的ORM框架很多,比如greenDAO , OrmLite , LitePal , XUtil ,ActiveAndroid等等。那我们怎么选怎一款比较好的ORM框架呢?。首先我们先看一个报表: 国内Top500Android应用分析报告 前500的应用基本就是一些大厂的应用了。我们可以看到用greenDAO 的和用OrmLite 的比较多,greenDAO 最多。在看这些框架在github中star量,目前greenDAO 也是最多的。所以我们选择greenDAO 。

greenDAO :

github地址: https://github.com/greenrobot/greenDAO

官网: http://greenrobot.org/greendao/

greenDAO的特点:

* 最高性能(大概为Android最快的ORM); greenDAO官方测试

* 易于使用强大的API涵盖了关系,并加入

* 最小内存消耗

* 小库的大小(<100KB),让您的生成时间低,以避免65K限制的方法

* 数据库加密:greenDAO支持SQLCipher,让您的用户的数据安全

* 强大的社区:超过5.000 GitHub上星显示有一个强大而活跃的社区

开始集成:

第一步在build.gradle中加入下面依赖

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
    }
}

apply plugin: 'org.greenrobot.greendao'

dependencies {
    compile 'org.greenrobot:greendao:3.2.0'
}

在build.gradle中配置版本和路径

greendao {
    schemaVersion 1  //我们的数据库的版本号  当数据库升级的时候可以在这里改版本
    daoPackage 'com.hsm.bxt.db'  //自动生成的DaoMaster、DaoSession、Dao的包名  根据自己想放的位置改变即可
    targetGenDir 'src/main/java'  //自动生成的DaoMaster、DaoSession、Dao的路径
}

第二步创建实体类

package com.chs.greendaotext;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;

/**
 * 作者:chs on 2016/11/29 14:14
 * 邮箱:657083984@qq.com
 */
@Entity
public class Note {
    @Id
    private Long id;
    @Property(nameInDb = "TITLE")
    private String title;
    @Property(nameInDb = "DES")
    private String des;
}

编译的时候greenDao会给我们自动生成构造方法和get set 方法。

注解的含义可以看这篇文章:GreenDao 3.X之注解

然后这时候点击build中的make project 就可以自动生成相应的文件了:DaoMaster,DaoSession,NoteDao。

Andrid数据库框架——greenDAO(一)

第三步使用

然后我们就可以使用greenDao了。 根据官方demo我们先在application中简单使用一下 ,下一篇在封装使用。

package org.greenrobot.greendao.example;

import android.app.Application;

import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.example.DaoMaster.DevOpenHelper;

public class App extends Application {
    /** A flag to show how easily you can switch from standard SQLite to the encrypted SQLCipher. */
    public static final boolean ENCRYPTED = true;//是否加密

    private DaoSession daoSession;

    @Override
    public void onCreate() {
        super.onCreate();

        DevOpenHelper helper = new DevOpenHelper(this, ENCRYPTED ? "notes-db-encrypted" : "notes-db");
        Database db = ENCRYPTED ? helper.getEncryptedWritableDb("super-secret") : helper.getWritableDb();
        daoSession = new DaoMaster(db).newSession();
    }

    public DaoSession getDaoSession() {
        return daoSession;
    }
}

建一个activity 在里面实现 增、删、改、查

NoteDao是用来操控数据库的,所以首先我恩得获得NoteDao的对象

// get the note DAO
        DaoSession daoSession = ((App) getApplication()).getDaoSession();
        noteDao = daoSession.getNoteDao();

增:noteDao . insert(Note note);

删:noteDao . delete(note);

改:noteDao .update(note);

查:noteDao.loadAll(Note.class);

OK 简单用法就这样了 下一篇稍微封装一下。毕竟项目中我们用一个框架一般都要封装下载用 会更方便。

原文  http://blog.csdn.net/mingyunxiaohai/article/details/53464159
正文到此结束
Loading...