greenDao2.0学习笔记4-核心介绍

1 介绍

先看一张图


正如上图,我们直接操作java object就可以增、删、改、查sqlite数据库里的数据,非常方便。

greendao是一个适用于android系统的对象/关系映射(ORM)工具。它为关系型数据库sqlite提供了一套面向对象的接口。没用ORM工具之前,我们操作数据库会写很多重复的代码处理起来也不够简单、直观。ORM工具(如greendao)提供非常简单的接口来干这件事。



2 Dao层代码生成器工程

先看一张图:


为了在你的Android项目中使用greendao,你需要创建另一个java工程项目用来自动生成数据库表对应的java实体和处理业务的dao层代码。如果你用eclipse请下载greenDAO-generator.jarfreemarker.jar,如果你用android studio你需要在工程build.gradlecompile'de.greenrobot:greendao-generator:2.0.0'即可。在生成器工程中,你需要创建一个可执行的java类,生成实体和dao层代码。对于细节,有请看下一篇建模。



3 核心类

一旦你根据自己想买的需求生成了特定的代码,你就可以在你的android工程中使用greendao了。别忘了包括greendao核心库(greendao.ar)。
以下核心类是greendao接口定义基本流程:


DaoMaster:    它是greendao的切入点,daomaster通过特定的公式持有数据库管理类SQLiteOpenHelper并管理dao类。它通过静态的方法创建和删除表。它的内部类OpenHelperDevOpenHelperSQLiteOpenHelper的实现类,用于创建SQLite数据库的模式。

 

DaoSession 管理所有你用schema自动生成的dao对象,调用时你可以直接用getter方法获取它们。daosession提供一些持久化的方法比如insert, load,update, refresh delete来让你方便的操作数据对象。最后DaoSession对象会跟踪identity scope,更多细节,可以参看 session 文档。



DAOs:操作数据的对象,提供数据的持久化和查询。对于每一个实体,greeDao都会为其生成一个对应Dao类,相比DaoSession它提供了更多的持久化的方法,比如:count, loadAll,and insertInTx



Entities: 可持久化的对象。通常它们是自动生成的。每一个对象代表数据库的一行数据,它们通过标准的java属性定义与之对应,就像( POJO or aJavaBean));





初始化核心内容:以下示例代码来说明初始化database greenDao的核心类。

helper = new DaoMaster.DevOpenHelper(this"notes-db"null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();

上边例子假定有一个实体对象note,使用noteDao我们可以对它进行调用持久化的一系列操作。

 


你可能感兴趣的:(android)