Android greenDAO 数据库框架接入指南
2017-03-05 18:48
489 查看
1 关于GreenDAO
greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。可以说它是专门为android平台下优化的ORM数据库,关于greenDAO的详细资料可以看官网greenDaogreenDAO 主要有以下几大优势:
1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化
下面截取一张官方的关于GreenDao,ORMLite,ActiveAndroid这三个数据库的性能对比图:
可以看到greenDAO相比其他的数据库在插入和读取上有压倒性的优势,这个对于我们客户端来说太重要了,因为我们客户端经常会读取数据库。好了,下面介绍greenDAO的使用方法。
2 greenDAO 3.x的使用
1 在as中导入相关的包我这里导入的是3.2.0版本
apply plugin: 'org.greenrobot.greendao' buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' } } dependencies { .... compile 'org.greenrobot:greendao:3.2.0' .... }
以上代码主要在你的项目下要引入数据库模块的module build.gradle下配置。
2 自定义greenDao相关路径
使用greenDAO的方便之处就是很多相关数据库的代码,我们可以使用greenDAO自动生成,但是我们需要指定生成的路径。
在我们module 下的 build.gradle配置以下代码:
greendao { schemaVersion 1 daoPackage 'com.qiyei.funny.greendao.gen' targetGenDir 'src/main/java' }
属性介绍:
schemaVersion–> 指定数据库schema版本号,迁移等操作会用到;
daoPackage –> dao的包名,包名默认是entity所在的包;
targetGenDir –> 生成数据库文件的目录;
好,基本上我们已经完成greenDAO的配置了,配置过程也很简单,现在我们需要同步一下工程。
3 创建实体类,并生成DaoSession及DaoMaster
我们首先创建以下实体类,并使用greenDAO中的注解来指明实体及字段
@Entity public class User { @Id private Long id; private String name; private String sex; }
greendao中的注解
(一) @Entity 定义实体
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active 无论是更新生成都刷新
(二) @Id
(三) @NotNull 不为null
(四) @Unique 唯一约束
(五) @ToMany 一对多
(六) @OrderBy 排序
(七) @ToOne 一对一
(八) @Transient 不存储在数据库中
(九) @generated 由greendao产生的构造函数或方法
我们创建了一个名为User的实体,并且指定了@Entity为User,@Id为id ,这里我们不用编写setter/getter方法,直接make project,神奇的事情出现了,我们会看到我们的工程为生成如下的代码及文件:
/** * Created by qiyei2015 on 2016/12/11. * 1273482124@qq.com */ @Entity public class User { @Id private Long id; private String name; private String sex; @Generated(hash = 1265202627) public User(Long id, String name, String sex) { this.id = id; this.name = name; this.sex = sex; } @Generated(hash = 586692638) public User() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getSex() { return this.sex; } public void setSex(String sex) { this.sex = sex; } }
同时在com.qiyei.funny.greendao.gen包下会有以下三个文件生成。
可以看到,我们的@Entity就是制定了我们的新建了一张名字为User的表
接下来我们就正式的访问我们的数据库了,并进行增删改查的操作。
4 初始化数据库
/** * 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。 * 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。 * 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。 * 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。 */ // 1 新建数据库funny.db DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext() ,"funny.db"); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb()); DaoSession daoSession = daoMaster.newSession();
以上步骤主要有以下几步:
1 新建数据库,使用DaoMaster.DevOpenHelper来实现。
2 获取DaoMaster对象,这个主要是为了我么后面获取DaoSession,通过DaoSession 我们才可以获取我们的实体的Dao。这里使用devOpenHelper.getWritableDb()来实现
3 获取DaoSession 对象。
以上我们就完成了数据库的初始化,接着我们是得到我们的User的Dao,如下:
UserDao userDao = daoSession.getUserDao();
得到了我们User的Dao我们 就可以进行数据库的增删查改了。
User 的插入
userDao.insert(new User(2L,"hello","boy"));
User的删除
userDao.deleteByKey(id);
User的修改
可以使用UserDao的update方法
public void update(T entity)
User的查询
QueryBuilder builder = userDao.queryBuilder(); List<User> list = builder.where(UserDao.Properties.Name.eq("hello")).list();
这样我们就完成了greenDAO的基本使用了。
关于greenDAO的使用可以参考官方的文档greenDAO官方文档
后面会写根据项目对greenDAO进行业务封装,敬请期待!
相关文章推荐
- android GreenDao数据库框架学习(2)
- Android框架学习之GreenDao(二)数据库升级
- Android数据库框架GreenDao封装使用,易理解、易扩展
- Android数据库框架GreenDao&Realm实战分析
- Android ORM 框架:GreenDao 数据库升级
- Android 数据库ORM开源框架之greenDAO
- Android整合网上资源以及个人对GreenDao数据库框架的理解与使用(android-studio开发)
- Android 操作数据库的框架——greenDAO的学习
- Android 数据库框架GreenDao食用练习
- Android数据库greenDAO框架用法和源码分析
- Android GreenDao数据库框架使用
- 【Android】ORM数据库框架之GreenDao快速入门与使用
- Android操作数据库的框架-GreenDao基本使用记录
- Android中数据库操作框架greenDAO介绍与使用
- Android ORM 框架:GreenDao 数据库升级
- android高效ORM数据库框架greenDao使用
- Android ORM数据库框架之-greenDao(三)
- Android数据库框架GreenDAO的使用&Demo
- Android中的GreenDao框架修改数据库的存储路径
- android GreenDao数据库框架学习(1)