android GreenDao数据库框架学习(1)
一.GreenDao概述:
greenDAO 是一个可以帮助 Android 开发者快速将 Java 对象映射到 SQLite 数据库表单中的 ORM 解决方案。greenDAO的特点运行效率最高、内存消耗最少,官网:http://greendao-orm.com/。。。github下载地址:https://github.com/greenrobot/greenDAO。
1、 DaoCore:greenDAO的核心库。
2、 DaoExample:greenDAO使用范例项目。
3、 DaoExampleGenerator:greenDAO使用范例的实体类及DAO组件的生成器项目。
4、 DaoGenerator:greenDAO的DAO组件生成器项目。
5、 DaoTest:greenDAO的测试项目。
6、 PerformanceTestOrmLite:ormlite框架性能测试项目
二.生成GreenDao框架:
在使用之前要下载greendao-generator.jar和freemarker.jar两个包,freemarker需要这个来生成java文件,来看具体怎么使用:
(1).首先生成一个java项目(不是android项目),然后将上面greendao-generator.jar和freemarker.jar导入java项目。
生成一个类,名字随便取:我得命名DaoGeneratorTest:
<span style="font-size:18px;">public class DaoGeneratorTest {public static void main(String[] args) throws Exception { //第一个参数是数据库版本号,第二个是自动生成包的路径 Schema schema = new Schema(1, "de.greenrobot.daoexample"); addNote(schema); //生成路径,就是在什么目录下生成这个文件,我的路径是在一个新建android项目src-gen目录下 new DaoGenerator().generateAll(schema, "../AndroidTestGreenDao/src-gen"); } private static void addNote(Schema schema) { //Entity是一个实体,实体类名为Note Entity note = schema.addEntity("Note"); //主键,设置自增长可在后面家.autoincrement() note.addIdProperty(); //实体类中的属性(也就是表中的字段),不能为空,其他设置看下方法名就能知道什么意思了 note.addStringProperty("text").notNull(); note.addStringProperty("comment"); note.addDateProperty("date"); } }</span>
而且要注意:src-gen要先创建好,才能成功。
生成成功:
Schema类:可以看成一个存放实体的容器。
Entity类:可用于将实体类映射到对应的表。
DaoGenerator:实体类和DAO组件的生成器,generateAll根据schema和目录参数,首先生成文件存放目录,并从schema中取出所有entity,根据freemaker模板生成对应的实体了和DAO组件。
三.使用GreenDao框架:
创建一个android项目,我得android项目名为(我上面java指定的路径就是这个项目下):AndroidTestGreenDao
这里greendao-1.3.0-beta-1.jar在github下载的DaoExample目录下libs下拿出来的。
创建数据库:
public class MainActivity extends Activity {private SQLiteDatabase db;private DaoMaster master;private DaoSession session;private NoteDao noteDao;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); //创建数据库名为notes-dbDevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db",null);db = helper.getWritableDatabase();master = new DaoMaster(db);session = master.newSession();noteDao = session.getNoteDao(); //添加一条数据Note note = new Note(10L, "1", "1", new Date());noteDao.insert(note);}}
Note:实体对象,映射到表NOTE。
NoteDAO:通过代码可知此类提供了生成建表、和删表的方法,并类继承了AbstractDao(greenDAO核心类之一,封装了操作表中数据的各种方法)。
DaoMaster:继承自AbstractDaoMaster,用于创建数据库,并管理数据库连接。
DaoSession:继承自AbstractDaoSession,所有DAO对象的入口,通过此类可获得实体了的DAO组件。
更多相关文章
- 准备一个rubymotion for android的实际项目
- android短彩信数据库设计(三)
- [通讯录] android通讯录数据库表解析和添加,访问通讯录
- 我的android 第15天 -使用SQLiteOpenHelper获取用于操作数据库的
- Android项目---语言适配
- 一个项目搞明白Android 启动模式和taskAffinity
- Android系统源码数据库(mmssms.db)
- Android应用框架无边界