关于GreenDao数据库框架在android studio上的相关配置和使用

来源:互联网 发布:龙腾世纪起源知乎 编辑:程序博客网 时间:2024/06/05 23:22

个人理解:安卓的数据库SQLite需要拼写很多的sql语句,相当的麻烦,还很容易出错,所以找到了一些主流的框架,比如说:realm和greendao。今天主要是讲述下greendao在android studio上的相关配置和使用。
首先介绍下其在studio上的配置,如下代码(本人的studio的版本是2.1.2):

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

这个代码片段是在安卓项目的project的gradle文件下面配置的。

然后新建一个java项目,在新建的java项目的gradle文件下面添加依赖库

compile 'de.greenrobot:greendao-generator:2.1.0'

然后编写相关的代码:

public class MyClass {    public static void main(String[] args) {        //www.wx.com为创建的代码的包名        Schema schema = new Schema(1, "www.wx.com");        //建立表名为Son的数据库        Entity son = schema.addEntity("Son");        //增加主键        son.addIdProperty();        son.addStringProperty("name");        son.addIntProperty("age");        Property fatherId = son.addLongProperty("fatherId").getProperty();        //建立表名为Father的数据库        Entity father = schema.addEntity("Father");        father.addIdProperty();        father.addStringProperty("name");        father.addIntProperty("age");        //将Son和Father的表相关联        son.addToOne(father, fatherId);        try {        //greendao/src/main/java为创建代码的目录            new DaoGenerator().generateAll(schema, "greendao/src/main/java");        } catch (Exception e) {            e.printStackTrace();        }    }}

然后运行你的java项目,你会发现在你的安卓项目的”greendao/src/main/java”的目录下面会生成“www.wx.com”的包,然后下面会出现相关创建的代码。但是你会发现生成的代码会报错,不用担心,那是因为你没有添加依赖的原因。

然后介绍下在安卓项目的配置:首先打开你的module所在的gradle文件,添加如下的依赖:

compile 'de.greenrobot:greendao-generator:2.1.0'compile 'de.greenrobot:greendao:2.1.0'

这样相关的配置基本结束,下面就是greendao数据库的相关代码的编写和一些基本的操作。

public static final String TAG = "MainActivity";    private DaoMaster master;    private DaoSession session;    private SQLiteDatabase db;    private SonDao sonDao;    private FatherDao fatherDao;    private void openDB() {        db = new DaoMaster.DevOpenHelper(MainActivity.this, "person.db", null).getWritableDatabase();        master = new DaoMaster(db);        session = master.newSession();        sonDao = session.getSonDao();        fatherDao = session.getFatherDao();    }    //插入    private void addPerson() {        Son son = new Son();        son.setName("me");        son.setAge(23);        Father father = new Father();        father.setName("ton");        father.setAge(51);        long fatherId = fatherDao.insert(father);        son.setFatherId(fatherId);        sonDao.insert(son);            }    //查询    public void query() {        LazyList<Son> sonList = sonDao.queryBuilder().listLazy();        Log.e(TAG, "" + sonList.size());        for (Son son : sonList) {            Log.e(TAG, String.valueOf(son));        }    }

本博文主要介绍了greenDAO 的基本用法与配置,更高级与详细的使用,请参见 官网

1 0