greenDAO文档翻译之二:介绍
来源:互联网 发布:软件项目进度风险 编辑:程序博客网 时间:2024/06/01 18:26
greenDAO是Android平台下的对象/关系映射工具。它为关系型数据库SQLite提供了一个面向对象的接口。像greenDAO这样的ORM工具提供了简单好上手的接口来操作数据,这样一来你可以省掉很多重复性的工作。
Gradle插件和生成DAO代码
为了在你的Android项目里使用greenDAO,你需要添加greenDAO gradle插件和greenDAO库依赖:
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'} }apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao'dependencies { compile 'org.greenrobot:greendao:3.2.0'}
然后模型化你的实体并构建你的项目,比如在Android Studio中是通过“Build > Make Project”。
核心类
一旦你的项目构建完成,你就可以开始在你的Android项目中使用greenDAO了。
下面的核心类是greenDAO中非常关键的接口:
DaoMaster:它是使用greenDAO的切入点。DaoMaster类持有数据库对象(类似SQLiteDatabase),并为一个特定的模式(schema)管理着DAO类(不是对象)。它拥有创建表和销毁表的静态方法。它的内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper,它们负责在SQLite数据库中创建这个模式(schema)。
DaoSession:为一个特定的模式(schema)管理着所有可用的DAO对象,从这些对象那里你可以使用其中一个getter方法获得到。DaoSession也提供对实体进行插入、加载、更新、刷新和删除等常见的持久化方法。最后,一个DaoSession对象也追踪一个身份记录。丰富详细的内容,请查看session文档。
DAOs:实体的数据通过这些对象(DAOs)来实现持久和查询。greenDAO为每一个实体生成一个DAO类。它比DaoSession有更强大的方法,比如:count, loadAll和insertInTx。
Entities:可持久化对象。通常,像使用标准Java属性的对象(例如一个POJO或一个JavaBean)代表着数据库中的一行,便是实体的对象。
初始化核心
最后,下面的代码举例说明了初始化数据库和greenDAO核心类的第一步:
// do this once, for example in your Application classhelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);db = helper.getWritableDatabase();daoMaster = new DaoMaster(db);daoSession = daoMaster.newSession();// do this in your activities/fragments to get hold of a DAOnoteDao = daoSession.getNoteDao();
这个例子假设了存在一个Note
实体。通过DAO(noteDao
对象),我们可以对这个特定的实体进行持久化操作。
原文档在这里,欢迎指正。
- greenDAO文档翻译之二:介绍
- greenDAO文档翻译之四:会话
- GreenDao官方文档翻译之(一)开始使用GreenDao
- GreenDao官方文档翻译
- GreenDao官方文档翻译
- greenDAO文档翻译之三:模型化实体
- GreenDao官方文档翻译(四)之Sessions
- GreenDao官方文档翻译上
- GreenDao官方文档翻译下
- GreenDao官方文档翻译上
- GreenDao官方文档翻译下
- Android ORM框架介绍之greenDao封装(二)
- GreenDao官方文档翻译上 下
- greenDAO文档翻译一:如何开始
- [翻译]Wintermute联机文档之二
- Flume官方文档翻译之(二)
- Kinect帮助文档翻译之二 手势
- GreenDao官方文档翻译(三)之模型化实体-Schema & Annotations
- 关于在VMware虚拟机上安装Linux操作系统
- java中的反射可以做什么?
- Android基础之加载大图片
- Spark MLlib源代码解读之朴素贝叶斯分类器,NaiveBayes
- Python3-Flask-微信公众号开发-2
- greenDAO文档翻译之二:介绍
- sxt6.22
- Git详解之一:Git起步
- Linux网络编程(三)
- 【剑指offer】题16:反转链表
- [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明
- 基于video texture(camera流,视频流) 创建一个纹理
- Linux网络编程(四)
- Word Search II