一.GreenDao概述:

greenDAO 是一个可以帮助 Android 开发者快速将 Java 对象映射到 SQLite 数据库表单中的 ORM 解决方案。greenDAO的特点运行效率最高、内存消耗最少,官网:http://greendao-orm.com/。。。github下载地址:https://github.com/greenrobot/greenDAO。

android GreenDao数据库框架学习(1)_第1张图片

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项目。

android GreenDao数据库框架学习(1)_第2张图片

生成一个类,名字随便取:我得命名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要先创建好,才能成功。
生成成功:

android GreenDao数据库框架学习(1)_第3张图片


Schema类:可以看成一个存放实体的容器。

Entity类:可用于将实体类映射到对应的表。

DaoGenerator:实体类和DAO组件的生成器,generateAll根据schema和目录参数,首先生成文件存放目录,并从schema中取出所有entity,根据freemaker模板生成对应的实体了和DAO组件。


三.使用GreenDao框架:

创建一个android项目,我得android项目名为(我上面java指定的路径就是这个项目下):AndroidTestGreenDao

android GreenDao数据库框架学习(1)_第4张图片

这里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组件。





更多相关文章

  1. 准备一个rubymotion for android的实际项目
  2. android短彩信数据库设计(三)
  3. [通讯录] android通讯录数据库表解析和添加,访问通讯录
  4. 我的android 第15天 -使用SQLiteOpenHelper获取用于操作数据库的
  5. Android项目---语言适配
  6. 一个项目搞明白Android 启动模式和taskAffinity
  7. Android系统源码数据库(mmssms.db)
  8. Android应用框架无边界

随机推荐

  1. 在h:inputTextarea中阻止Html标记
  2. jquery入门-$.each 数组操作与表单操作代
  3. 穹顶之下-善恶是非谁来负责
  4. HTML设置的横跨3列
  5. .fadeToggle()使我的子列表不可访问
  6. 如果字符串包含html代码,如何用python检测
  7. 去除Chrome浏览器文本框边缘的黄线
  8. 【竞价网站绝技】根据访客ip,页面显示访客
  9. Html css缩放会将大小改变几个像素
  10. 利用HTML5开发Android笔记