GreenDao
来源:互联网 发布:淘宝网店产品摄影 编辑:程序博客网 时间:2024/04/28 12:21
1.insertOrReplace 如果参数 的唯一字段的值与数据库中某条数据一样,那么执行的是插入一条数据,并将原数据删除,也就是类似于更新,但是主键ID变化了,并且更新没有插入的字段都是null。
2. update(实体) ,实体必须包含主键,否则报错,实体中没有赋值的也会被更新的成了空值。
3. 这里有时候,我们在运行MyDaoGenerator.java代码,生成类的时候,会提示GKB代码无法运行,这是因为你在这个文件里写了中文,它不认,就算是你把这个文件转成了utf-8,也会报这个错,这时候,我们只能用记事本打开这个文件,然后覆盖保存,在保存时,编码选择 ANSI。
4. query 的查询 ,分页
noteDao.queryBuilder().where(NoteDao.Properties.NoteID.eq("hlx"), NoteDao.Properties.Comment.eq("")) .limit(20).offset(2);
5. 一对多的写法
Property customerId = order.addLongProperty("customerId").notNull().getProperty();order.addToOne(customer, customerId);ToMany customerToOrders = customer.addToMany(order, customerId);customerToOrders.setName("orders");
6.一对多中deleteAll ,update 不会产生联动效果,在插入n 端的时候设置setCustomer,即设置一端的值,那么查询的时候就可以返回一段的值
7.多对多的写法
- Property studentId = stuAndteaBean.addLongProperty("studentId").getProperty();
- Property teacherId = stuAndteaBean.addLongProperty("teacherId").getProperty();
- //这里其实很简单,就是建立两个1:n的关系
- stuAndteaBean.addToOne(studentBean,studentId).setName("onestu");
- stuAndteaBean.addToOne(teacherBean,teacherId).setName("onetea");
- studentBean.addToMany(stuAndteaBean,studentId).setName("manystu");
- teacherBean.addToMany(stuAndteaBean,teacherId).setName("manytea");
8. queryBuilder 多线程时使用forCurrentThread() 来避免死锁
9.greenDao支持唯一结果和结果链表。如果你只想获取唯一的结果,那么可以使用unique(),它要么给你唯一一个结果,要么null,如果你不想获得null,那么你可以使用uniqueOrThrow(),它会在匹配结果为空时抛出DaoException的异常。
如果你想获取多个结果,以下有几个方案:
list():所有结果都会载入内存,结果会死一个ArrayList。
listLazy():结果会按需载入内存,一旦其中一个元素被要求了,那么就会载入内存并且进行chache,必须手动关闭。
还有listLazyUncached()和listIterator(),也需要手动通过调用close()来关闭。
参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1127/2069.html
http://blog.csdn.net/chenguang79/article/details/50469138
- greenDao
- greenDAO
- greenDAO
- greenDAO
- GreenDao
- GreenDAO
- Greendao
- greenDAO
- GreenDao
- GreenDao
- GreenDao
- GreenDAO
- GreenDAO
- GreenDao
- GreenDao
- greenDAO
- GreenDAO
- GreenDao
- boundingRectWithSize 计算高度 5s和plus高度不同
- C++ STL中哈希表 hash_map介绍
- Log4j 2 + Slf4j 的配置和使用
- 从图库选择图片后根据Intent获取真实地址
- python中for in中定义多个参数
- GreenDao
- ssh框架与json的整合,没导入相应jar包报的错误提示
- 关于JNI配置Error: Could not find class file for 'XXX'问题(MAC Andriod Studio)
- 【团队分享】刀锋铁骑:常见Android Native崩溃及错误原因
- Bestcoder round#32 解题报告
- Fiddler抓包工具-APP
- 架构Android ...最清晰的方式是?
- fragment创建工厂
- Python中的函数参数