如何根据特定条件构建查询。
我尝试这样做
QueryBuilder builder = SQlite.Select().from(Table)
if(condition) {
builder.where(something)
}
Cursor c = builder.query;
但这是不允许的。
我必须根据我在首选项中保存的条件查询我的数据库。我用谷歌搜索并在文档中到处搜索,但找不到一个例子。 dbflow 中是否存在此功能,如果是,那么如果没有,任何其他 orm(如 greenDAO)是否具有此功能
最佳答案
您可以在 DBFlow 中创建条件查询。要查询表的列,您必须将 _Table
附加到类名中,然后访问其属性。这些_Table
类是在构建时生成的。
最简单的查询是这个:
SQLite.select()
.from(YourTable.class)
.where(YourTable_Table.id.eq(someId)
.queryList();
您还可以在查询中使用 .and
和 .or
添加新条件:
SQLite.select()
.from(YourTable.class)
.where(YourTable_Table.id.eq(someId)
.and(YourTable_Table.name.eq(someName)
.queryList();
为了使代码更简洁,您还可以将条件分组为条件组,如下所示:
ConditionGroup conditionGroup = ConditionGroup.clause();
conditionGroup.and(YourTable_Table.id.eq(someId);
if (someCondition) {
conditionGroup.and(YourTable_Table.name.eq(someName);
}
return SQLite.select()
.from(YourTable.class)
.where(conditionGroup)
.queryList();
关于orm - 查询生成器 dbflow 条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323389/