GreenDao开源ORM框架浅析

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/u011133213/article/details/37738943

Android程序开发中,避免不了要用到数据库。我们都知道android提供了内置的Sqlite,即调用SQLiteOpenHelper的方法,来操作数据库。可是使用过程较为繁琐,从建表到对表中数据的正删改查操作,须要大量的代码来建立表。和完毕这些操作。

GreenDao竟然是ORM框架。它跟hibernate是非常像的。就是当你配置了一些參数信息之后,能够由框架来帮你生成相应的实体类。还有生成相应的操作实体类的代码(自己主动建表和主要的增删改查)。

其它的ORM框架:OrmLite, Androrm 相对照较简单,可是性能没有GreenDao好!

    长处: 1.最大性能(最快的Android ORM) 

          2.易于使用API

           3.高度优化

            4.最小内存消耗




首先我们先看下怎么构建GreenDao的环境

一、Android Studio 中配置GreenDao依赖(Eclipse中直接下载jar包)

在项目中build.gradle中加入以下红色字体部分:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'de.greenrobot:greendao:1.3.7'
    compile 'de.greenrobot:greendao-generator:1.3.1'

}


Eclipse的话直接下载以下三个包导入libs



二、GreenDao使用详细解释


GreenDao流程图:



引入了这个流程图,那么我们開始浅析关于这幅图。

竟然GreenDao是用来帮我们简化建表、增删改查操作的,并且从上面的图中我们能够知道,原来不用GreenDao的时候,我们须要自己去写XyzEntity(实体类bean), 写完实体类之后,我们会写操作相应实体类的XyzDao

另外GreenDao引入了两个类,

DaoSession: 操作详细DAO对象的各种getter方法。

DaoMaster: 它保存了我们的SQLiteDataBase对象及操作DAO类。

还有提供一些创建和删除Table的静态方法,它的内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper并创建数据库的框架。


那么如今用了GreenDao我们须要做些什么。而不须要做什么呢?


1.我们须要在Android项目中创建一个Java类(带main函数)

2.导入greenDao-generator.jar和freemarker.jar两个包。

3.创建Schema,指定数据库的版本、Java package參数

Schema schema = new Schema(1000,"com.example.greendao.note");

4.创建Entity,并加入到Schema对象中(Entity:相当于数据库中的表, 所以又可能有ToOne, ToMany的关系),调用该函数 传入

第三步生成的Schema对象。

private static void addNote(Schema schema){
        //生成一个Note Bean
        Entity note = schema.addEntity("Note");
        note.addIdProperty();
        note.addStringProperty("text").notNull();
        note.addStringProperty("comment");
        note.addDateProperty("date");
    }

5.Entity加入到Schema对象之后。调用DaoGenerator,进行自己主动生成上面所述的四个类

new DaoGenerator().generateAll(schema,"./app/src/main/java");//指定要生成的Schema,还有类生成之后存放的路径


到此为止。就基本上已经完毕了一个最简单的对象实体关系映射了。

然后我们就要開始使用这些类了。依据我们上面的介绍,我们知道我们须要先从DaoMaster的内部类DevOpenHelper中得到我们想要的SQLiteDatabase对象。然后我们须要通过这个对象创建出相应的DaoMaster类对象daoMaster,有了这个daoMaster之后,我们就能够实例化一个新的会话Session, 通过这个Session再来得到相应的实体Dao, 最后操作这个Dao中的函数,就能够对数据库中相应的表进行增删改查了。

                DaoMaster.DevOpenHelper devOpenHelper =  new DaoMaster.DevOpenHelper(getApplicationContext(),"notedb",null);
                db = devOpenHelper.getWritableDatabase();
                master = new DaoMaster(db);
                DaoSession session = master.newSession();

                CustomerDao customerDao = session.getCustomerDao();
                customerDao.insert(new Customer());

此文仅抛砖引玉,还有另外的一些GreenDao更加详细的使用,希望大家自己去看官方的文档学习。

1.greenDAO官网:http://greendao-orm.com/

2.项目下载地址:https://github.com/greenrobot/greenDAO



posted @ 2019-04-28 11:54  ldxsuanfa  阅读(157)  评论(0编辑  收藏  举报