GreenDao2.0

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.多对多的写法

  1. Property studentId = stuAndteaBean.addLongProperty("studentId").getProperty();  
  2. Property teacherId = stuAndteaBean.addLongProperty("teacherId").getProperty();  
  3.   
  4. //这里其实很简单,就是建立两个1:n的关系  
  5. stuAndteaBean.addToOne(studentBean,studentId).setName("onestu");  
  6. stuAndteaBean.addToOne(teacherBean,teacherId).setName("onetea");  
  7. studentBean.addToMany(stuAndteaBean,studentId).setName("manystu");  
  8. 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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置GreenDao,你需要按照以下步骤进行操作: 1. 在module级别的build.gradle文件中,将以下代码添加到文件的顶部: ``` apply plugin: 'org.greenrobot.greendao' ``` 2. 在同一个build.gradle文件中,添加以下配置到android模块下的greendao块中: ``` greendao { schemaVersion 1 // 设置数据库版本号,升级时可修改 daoPackage 'com.example.greendaodemo.db' // 设置生成的DAO、DaoMaster和DaoSession的包路径,默认与表实体所在的包路径相同 targetGenDir 'src/main/java' // 设置生成的源文件的路径,默认在build目录下的build/generated/source/greendao目录中 } ``` 3. 添加GreenDao的依赖库,将以下代码添加到dependencies块中: ``` implementation 'org.greenrobot:greendao:3.2.2' ``` 这样,你就完成了GreenDao的配置。如果需要生成GreenDao的代码,请确保你还添加了以下依赖库: ``` implementation 'org.greenrobot:greendao-generator:3.2.2' ``` 参考链接:<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GreenDao的简单配置](https://blog.csdn.net/qq_42061290/article/details/82586342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [GreenDao配置](https://download.csdn.net/download/a511341250/9593713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [GreenDao配置文档](https://blog.csdn.net/chentaishan/article/details/105263937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值