本文转自:http://my.oschina.net/u/1052509/blog/312543
greenDAO是一个适用Android的对象关系映射(ORM)工具。它为关系型数据库提供了面向对象接口。ORM工具(如greenDAO)会为你做许多重复性的工作并提供简单的接口访问数据。
DAO 代码生成项目
要在Android项目中使用greenDAO,需要创建第二个项目:”生成器项目“。它的任务是为你的项目生成相应的实体和DAO代码。生成器项目是普通的java(非Android)项目。确保greenDAO生成器类库(greenDAO-generator.jar)和Freemarker类库(freemarker.jar)在classpath中。创建一个可执行的java类,构建实体然后开始代码生成。详情可查看 “构建实体”章节。
核心类
完成代码生成后,就可在Android项目中使用greenDao了(确保生成的代码在Android项目的源文件目录下)。别忘了在Android项目中引入greedDAO的核心类库(greenDao.jar)。下面的核心类是greenDAO最重要的接口:
DaoMaster:greenDAO的入口。DaoMaster持有数据库对象(SQLiteDatabase)并管理DAO类(非对象)。它有创建表或删除表的静态方法,其内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper的实现。
DaoSession:管理所有的DAO对象,可通过相应的get方法获取DAO。DaoSession也提供了常见的持久化实体的方法,如:insert,load,update,refresh和delete。并且,一个DaoSession对象在一个作用域(identity scope)内保持会话。更多详情,可以查看 “会话”章节。
DAOs:数据访问对象(DAOs)用于持久化和查询实体。每个实体,greenDAO对应一个DAO。相比DaoSession,它提供更多的持久化方法,如:count,loadAll和insertInTx。
Entitys:持久化对象。通常,实体是被生成的(并非一定),使用一些标准的java属性(如POJO或JavaBean),代表数据库表中的一行。
核心初始化
下面的核心例子展示了第一步,初始化数据库和核心greenDAO对象:
1
2
3
4
5
|
helper =
new
DaoMaster.DevOpenHelper(
this
,
"notes-db"
,
null
);
db = helper.getWritableDatabase();
daoMaster =
new
DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();
|
上面的例子假设有一个“Note”实体。使用它的DAO(noteDao 对象),可以对其调用持久化操作。