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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库名为notes-db DevOpenHelper 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组件。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。