1.eq 和 noteq 和 like 查詢
eq 相等
noteq 不相等
like 模糊搜索
2. >、<、>=、<= 查詢
我們看一下使用“>”查找的代碼:
private void queryGt() {
List mingGt = sonDao.queryBuilder().where(SonDao.Properties.Age.gt(18)).list();
Log.d(“mingGt”, “queryGt() called” + mingGt);
}
通過logcat我們可以看到我們搜索的是年齡大于18的數(shù)據(jù)
這是因?yàn)槲覀冋{(diào)用了gt方法,gt方法就是實(shí)現(xiàn)的“>”的條件查詢
其實(shí)標(biāo)題中的四種條件對(duì)應(yīng)的就是四個(gè)方法
- ">" :gt
- "<" :It
- ">=" :ge
- "<=" : le
3.isNull 和 isNotNull 查詢
這兩個(gè)查詢就是查詢數(shù)據(jù)庫(kù)中有無數(shù)據(jù)的
使用方法與上文的查詢方法類似,大家可以自己體驗(yàn)一下!
4.排序
首先我們實(shí)現(xiàn)數(shù)據(jù)的升序排列,我們封裝了一個(gè)queryAsc的方法:
private void queryAsc() {
List data0 = sonDao.queryBuilder().orderAsc(SonDao.Properties.Age).list();
Log.d(“data0”,”queryAsc() called”+data0);
我們通過orderAsc方法就輕松實(shí)現(xiàn)了數(shù)據(jù)的升序排列!
降序排列呢,我們可以將orderAsc方法替換為orderDesc就可以實(shí)現(xiàn)了!
5.多線程查詢
當(dāng)我們的數(shù)據(jù)庫(kù)非常龐大的時(shí)候
我們知道在主線程中查詢數(shù)據(jù)時(shí)非常耗時(shí)的
所以我們這需要把查詢放到子線程中
greenDao 提供了forCurrentThread方法
我們可以這樣:
private void queryThread() {
final Query query = sonDao.queryBuilder().build();
new Thread(){
@Override
public void run() {
List list = query.forCurrentThread().list();
Log.d("queryThread", "run() called" + list);
}
}.start();
}