GreenDao 使用知识小y
//关于 group by 的实现
//--------------------
XXXDao.queryBuilder().where(new WhereCondition.StringCondition(Properties.Contact_number.eq(phonenumber) + "GROUP BY group_name")).orderDesc(Properties.Date_time).build().list();
在GreenDao的使用过程中,查询了好多的资料,基本是都是把网站上的东西给翻译,再加一点点的说明,可是真正操作时,你会发现有很多的疑问,
以下就是记录我在使用过程中遇到的问题,及解决的方法,可能对,可能不对,可能不妥当,欢迎大家提出宝贵意见!
1.关于 entity 中的 @Id 字段
大部分就是这样说的: @Id 对应数据表中的 Id 字段,是一条数据的唯一标识。
再多一点的话,会告诉你加一个 @Id(autoincrement = true)
就是可以设置为自增,或手动增加!
----------------------------------------------------
我的疑问: 如果想获取 新Insert 数据的Id 怎么办??(老鸟会说: 你没有细看源码,或是说明书!是的,不过我真的是个新手,只是记录一下)
如果设置为自增: 那是不是 插入 后还要 再查询一下,获取Id,
如果手动设置ID: 那是不是在插入前,还是需要查询一下数据库!
也就是说不管怎么样就需要额外查询一下数据库!
这不是我们想要的!
答案很简单: 就是 Insert 本身就返回一个该插入数据的ID
Long newID = myDataDao.insert(myObj); // newID,就是插入该条数据的Id.
事实上:在我们实际应用过程中,有时,希望自己手动给定ID, 比如:
同步服务器的数据到本地手机SQLITE那就需要就原来的ID(当然,另一个方案 也可以设置另外一个 冗余 字段ID),
其实,也很简单,只要测试一下就知道了:
直接插入数据,包括Id字段(需要有相应的 Construtor),当然,字段是不能与原来的重复!
我的办法: 把原来的数据全删除,然后再插入,这样就可以保持原来的ID不变.
缺点: 需要删除原来的数据,再插入,如果数据量很大的话,这样做是不合理的(因为我的数据量不是很大万条以内)
优点: 就是保持原来的ID
(当然,另一个方案 也可以设置另外一个 冗余 字段ID)
GreenDao 使用知识小y的更多相关文章
- 小Y的轮回之路——攒机装机、B150装win7
两个月前,陪伴我5年多的小Y(ideapad-y460N卡)突然大伤元气,硬盘跪了,显示屏也黑了一小块.本着经济实惠凑合用的态度换了个320G的硬盘,没想过几天显示屏情况加重,出现无数个红绿相间的线条 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- 小Y的难题
Font Size:Aa Aa Aa Description 近期小Y迷上了数学,总是在思考各种数学问题.有一天,他不小心把墨水洒在草稿纸上.他如今能看到的是"2?3?1?4"(? ...
- D - 小Y上学记——要迟到了!
D - 小Y上学记——要迟到了! Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- C - 小Y上学记——认识新同学
C - 小Y上学记——认识新同学 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- B - 小Y上学记——小Y的玩偶
B - 小Y上学记——小Y的玩偶 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- A - 小Y上学记——修学分
A - 小Y上学记——修学分 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...
- 【luogu P4007 清华集训2017】小Y和恐怖奴隶主
题目背景 “A fight? Count me in!” 要打架了,算我一个. “Everyone, get in here!” 所有人,都过来! 题目描述 小 Y 是一个喜欢玩游戏的 OIer.一天 ...
- 【luoguP4006 清华集训2017】小Y和二叉树
题目描述 小 Y 是一个心灵手巧的 OIer,她有许多二叉树模型. 小 Y 的二叉树模型中,每个结点都具有一个编号,小 Y 把她最喜欢的一个二叉树模型挂在了墙上,树根在最上面,左右子树分别在树根的左下 ...
随机推荐
- Flask13 面试要能吹 、安装虚拟机、虚拟机全局设置、导入虚拟机文件、虚拟机局部设置
1 web开发工作的三个能力 1.1 开发思想 易维护:开发成本远低于维护成本 可扩展:随着访问量的增加会自动使用多个数据库 高可用:程序就像小强一样,开发的系统能够经得住狂风暴雨的吹残(例如:一台主 ...
- 《精通Spring4.X企业应用开发实战》读后感第六章(引用Bean的属性值)
- Luogu 4868 Preprefix sum
类似于树状数组维护区间的方法. 每一次询问要求$\sum_{i = 1}^{n}\sum_{j = 1}^{i}a_j$. 展开一下: $\sum_{i = 1}^{n}\sum_{j = 1}^{i ...
- e.key && e.which && e.keyCode
官方推荐用e.key来描述状态码,其他两种属性可能会在未来被废弃. 且key,keyCode和which 为只读属性 但是会有浏览器兼容性的问题,可以采用如下代码: let key = ''; ...
- Citrix 未注册解决办法
Citrix 经常出现未注册的问题 是因为DNS的解析 问题 ping DDC 的全名你会发现ping 不通 解决方案如下 首先 在 192.168.1.145(图站)上饭解析一下DDC(控制中心19 ...
- 理解linux服务器mcelog如何工作
What are Machine Check Exceptions (or MCE)? A machine check exception is an error dedected by your s ...
- ASP.NET MVC 小牛之旅1:何谓MVC
在学习ASP.NET MVC之前首先了解什么 是MVC ? MVC不是一种语言,严格来说也不算一个技术,而是开发时所使用的一种架构(框架),它就像是一种开发观念,或是一个设计样式. MVC让软件开发的 ...
- DOMContentLoaded时间触发与js,css,img的关联
DOMContentLoaded触发原理: 1.规范总是那么的晦涩,但至少有一点是可以明确了的,就是在JS(不包括动态插入的JS)执行完之后,才会触发DOMContentLoaded事件. 2.DOM ...
- OpenStack API映射分析
Nova代码阅读 确定服务类型 RPC服务 WSGI服务 查询cmd目录下的对应的服务启动脚本,根据服务创建方式来判断服务类型,service.WSGIService表示WSGI服务,service. ...
- 关于pacemaker监控mysql修复的方法
对工作中,涉及到数据库修复的一个简单汇总 1.在所有的控制节点上,执行pcs resource命令行,查看控制节点上pacemaker的状态是否异常,如果异常,通过crm_resource -P命令行 ...