介绍GreenDao
GreenDao对于android来说是一个对象或关系映射工具。它提供了一个面向对象的接口的关系数据库SQLite。ORM工具如GreenDao为你做重复的许多任务和你的数据提供了一个简单的接口。
DAO代码生成项目
为了使用greenDAO在你的Android项目中,你需要创建第二个工程-“generator project”;其目的就是生成你项目中需要的代码。该generator project是一个java项目,不是android项目。你需要确定该项目中添加了两个jar包greenDAO-generator.jar和freemarker.jar。接下来,创建一个可以执行的java类,创建你需要的数据Entity并且出发代码生成的方法。具体详情可以查看创建Entity文档
核心类
一旦你生成了你要的代码,你就可以在你的Android项目中使用greenDAO。首先,需要确保添加了greenDAO.jar到你的项目中。
以下是greenDAO的核心类:
DaoMaster:
这是一个使用GreenDao的切入点。DaoMaster 保存数据库对象(SQLiteDatabase)和DAO类(不对象)对于一个特定的schema。
它有静态方法去创建和删除表。它的内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper,实现了在SQLite数据库中创建schema。
DaoSession:
在一个schema下管理所有可以使用的Dao对象。DaoSession也为操作entity提供了一些方法:insert, load, update, refresh,delete等。最后,一个DaoSession 对象还可以跟踪一个身份范围。具体详情可以查看 session documentation。
DAOs:
Dao提供快速操作entity的方法。对于每一个entity,GreenDao都会为其生成一个对应的Dao。Dao比DaoSession提供更多快捷方法,比如count, loadAll, and insertInTx。
Entities:
持久对象。通常Entity是被生成的,并使用标准java属性代表一个数据库对象(如一个POJO行或JavaBean)。
实现重点
下面的代码示例阐释了初始化数据库和核心greendao类的第一步:
helper = new DaoMaster.DevOpenHelper( this, "notes-db", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();
在该实例中,我们假设有一个Note entity。通过NoteDao对象,我们可以对该entity 进行持久性操作。