前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android GreenDao的基本使用

Android GreenDao的基本使用

作者头像
黄林晴
发布2019-01-10 15:29:01
1.8K0
发布2019-01-10 15:29:01
举报
文章被收录于专栏:代码男人代码男人

前言

Android 本地数据库有很多,Sqlite、Dbutils、LitePa、GreenDao等,其他的几个数据库框架都用过了,GreenDao还未在项目中用过,所以在这里记录下GreenDao的基本使用。

一、添加GreenDao支持

 1.1 在项目根目录下的build.gradle下的代码添加下列代码:

1.2 在module下build.gradle(这里是app下的build.gradle)中添加下列代码:

代码语言:javascript
复制
compile 'org.greenrobot:greendao:3.2.2'

并且在最上面添加

代码语言:javascript
复制
apply plugin: 'org.greenrobot.greendao' //新加的

1.3 在module下build.gradle android中配置greendao的信息

代码语言:javascript
复制
greendao {
    schemaVersion 1 //数据库版本号
    daoPackage 'hlq.com.greendao.db'// 设置DaoMaster、DaoSession、Dao 包名
    targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录  基本上都是这个
}

我的目录如下:

二、创建数据库对应的实体类,以用户信息为例

2.1 新建一个User实体类,里面有id,name、pass、sex、age五个字段,如图所示:

这是一个普通的实体类,我们通过注解,可以让后续声称对应的表。

@Entity

表明这个实体类会在数据库中生成一个与之相对应的表

@Id

对应数据表中的 Id 字段

其他更多注解可以参考greendao官方网站:http://greenrobot.org/greendao/

添加完注解之后变成如下图所示:

如果我们想让id自增(一般id字段都自增),我们可以改为:

ps:这里的坑要注意,如果id自增的话,必须必须定义id类型为大写的Long,小写的会报错。

然后,生成对应的setter、getter和构造方法。

2.2 点击 Make Project(或者 Make Moudle ‘App’) 编译工程,会自动在配置的目录下生成daoseesion等。生成如图所示:

2.3 初始化 GreenDao,一般都在application中完成初始化操作(这里为了演示直接写在Activity中)

初始化操作主要就是获取dao,代码如下:

代码语言:javascript
复制
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"user,db");
SQLiteDatabase sqLiteDatabase = devOpenHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(sqLiteDatabase);
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();

三、数据库操作

3.1 插入操作

代码语言:javascript
复制
User user = new User("黄林晴","123456","男",22);
userDao.insert(user);

3.2 查询所有操作返回时实体类对应的List集合

代码语言:javascript
复制
userDao.loadAll();

为了验证3.1插入操作,我们打印出查询结果如下:

3.2 接下来我们再插入一条数据,再次打印如下:

打印出三条因为我们已经运行过一次了。

3.3 条件查询,以按姓名查找为例:

代码语言:javascript
复制
List<User> users = userDao.queryBuilder().where(UserDao.Properties.UserName.eq("Huanglinqing")).build().list();

打印结果如下:

我们看到只打印出来姓名为Huanglinqing的数据。

3.4 删除

代码语言:javascript
复制
 userDao.deleteAll()

后续:其他操作就不一一演示了,需要的时候到官方网站去查询API就行了。

欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人

分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、添加GreenDao支持
  • 二、创建数据库对应的实体类,以用户信息为例
  • 三、数据库操作
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档