GreenDao-基本使用

来源:互联网 发布:淘宝卖家退货骗局 编辑:程序博客网 时间:2024/04/19 01:05

在上一节中我们介绍了greendao的环境搭建以及简单的工具类封装接下来我们介绍greendao的基本使用。
不熟悉的同学可以打开如下链接

greendao的环境配置

1.greendao的添加语法
语法很简单基本的使用如下(这里我们沿用上节的user,以及userDao)

 UserDao dao = MarsKangDbManager.getDataBaseInstance().getUserDao();         User user1 = new User( 2,"abc", "123", "001");         dao.insert(user1); 

2.greendao的查询语法
首先我们来看一个简单的查询

List<User> users=dao.queryBuilder()             .where(UserDao.Properties.UserName.like("abc"))             .orderAsc(UserDao.Properties.UserName,UserDao.Properties.PassWord).list();        int sum=users.size();

where 语句的意思就是通过我们的UserDao获取到Properties的属性UserName包含abd的内容
也就是查询user表usernam这个字段包含abc的记录。
orderAsc 语句的意思就是通过我们的UserDao获取到Properties的属性UserName,以及通过我们的UserDao获取到Properties的属性PassWord 首先通过UserName正序排列然后通过PassWord 正序排列实现结果集排序的目的。
list 很容易理解就是将结果存放到list中去返回给users对象。
接下来我们来看个复杂点的查询

  QueryBuilder<User> qb = dao.queryBuilder();  qb.where(UserDao.Properties.UserName.eq("abc"),          qb.or(UserDao.Properties.Id.between(0, 2), UserDao.Properties.UserPower.eq("001")),          qb.and(UserDao.Properties.UserName.in("abc"), UserDao.Properties.UserPower.isNotNull()));        List<User> users=qb.list();        int sum=users.size();

跟上面的原理一样我们通过where语句包裹需要的所有条件
1.用户名=abc
2.用户ID在0到2之间或者用户权限=001
3.用户名包含abc并且用户权限不为null
当然如果我们要限制结果集的内容我们可以这样做

 List<User> users=qb.limit(2).offset(1).list();int sum=users.size();

在得到结果集之前加上limit(2)代表限制查询数量为为2条默认是从第1条开始.offset(1)代表从第2条开始查询,查询第2,3条数据。

3.greenDao复杂查询

  String sql=" left join USER u on u._id = T.USER_ID  ";   Query<Student> students=sdao.queryRawCreate(sql);   List<Student> students1=students.list();

这样我们就通过sql查询到了我们想要的结果了
但是我们同事也发现了greenDao的缺点
1.它的join方法只是支持内联而且还得是主键内联
2.它不能定义我们所需要返回的实体类型
可能做完这些需要greendao的工程师们花费一些精力以及时间去完成,作为开发者如果我们的app本地对数据查询复杂度要求很高的话可以使用greendao提升开发效率,如果对于查询比较多查询内容比较负责的应用建议先不使用greendao作为我们的数据库框架。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 家纺摆放跑色怎么办 买的t恤太小了怎么办? 汽车全包围脚垫翘边怎么办 针织衣服线跑了怎么办 老板跟老板娘吵架我应该怎么办 偷看老板娘洗澡被发现怎么办? 幽浮2人挂了怎么办 蜻蜓fm业务扣费怎么办 退出键退不到主页面怎么办 3d纯英文版怎么办 3d单位设置错了怎么办 翼龙贷款不还款怎么办 lol视角变低了怎么办 王者荣耀体验卡太多怎么办 文件打开后超出电脑屏幕怎么办 2400g玩lol跳fps怎么办 手机吃鸡延迟长怎么办 三星s8发热卡顿怎么办 逆水寒修为不够怎么办 诛仙摆摊金币被扣怎么办 诛仙手游宠物亲密度满了怎么办 诛仙包裹满了怎么办 感觉自己心理有问题 怎么办 刺激战场手机配置低怎么办 国土防线2没反应怎么办 镜之边缘迷路了怎么办? 陌陌直播不清晰怎么办 夏利n5 1.0费油怎么办 gg修改器是病毒怎么办 传送门骑士联机读条慢怎么办 被打成轻伤派出所不抓人怎么办 有人上门找事怎么办算正当防卫吗 win10 电脑账户被停用怎么办 电脑一键还原后黑屏怎么办 win一键还原后黑屏怎么办 打架对方群殴我我怎么办 杀了人没钱赔怎么办 团伙打架被对方所刀捅伤怎么办 过失致人重伤赔偿不起怎么办 被别人打了派出所不管怎么办 先动手的被打伤怎么办