GreenDAO使用心得
前言
作为一个程序员,基本的SQL
语句是必须掌握的,但是如果单单使用原生的SQL
语句,开发效率就太低了.
虽然Android
有给我们提供一套封装好的API
,但我觉得并没有提高多少便利,反而增加了学习成本。
我选择的是greenDAO .
虽然github
上realm-java 的星星比greenDAO高一点.
但是realm-java 有一个弊端,就是apk
的体积会大上5M左右。
下面一图说明greenDAO
的好处
简单使用
导入
greenDAO 已经讲解的很清楚了。
但是还是要说一下
1 | //这段代码是放在根build.gradle而不是某个module的build.gradle里的 |
1 | //这段代码是放在android的module的build.gradle里的 |
1 | //这段代码是放在java library的module的build.gradle里的(下一小节会提到) |
创建一个新的Module
首先需要一个Java Library
,通俗的讲,就是用来创建一系列的实体类(一个类对应一个表)和数据库工具类。
并且导入compile 'org.greenrobot:greendao-generator:3.1.0'
,上面有提到。
注意,我们创建的是Java Library
,是Java Library
,是Java Library
。
所以要用Java
的方式写代码,而不是Android
的方式。
既然是Java
的方式,就要写main
函数。
1 | public class Main { |
那么问题来了,生成的代码到哪里去了呢?要如何使用呢?
自动生成代码
运行代码
如果出现以下信息就是创建成功
切换到Project Files
视图,可以看到代码已经自动生成了
这里引用 一下
- DaoMaster:一看名字就知道它是Dao中的最大的官了。它保存了sqlitedatebase对象以及操作DAO classes(注意:不是对象)。其提供了一些创建和删除table的静态方法,其内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper并创建数据库的框架。
- DaoSession:会话层。操作具体的DAO对象(注意:是对象),比如各种getter方法。
- XXXDao:实际生成的某某DAO类,通常对应具体的java类,比如NoteDao等。其有更多的权限和方法来操作数据库元素。
- XXXEntity:持久的实体对象。通常代表了一个数据库row的标准java properties。