如何执行"从emp"中选择不同的ename?使用GreenDao
我正在尝试使用GreenDao获取sqlite数据库列的不同值。我该怎么做?任何帮助表示赞赏。
答案 0 :(得分:15)
您必须使用原始查询,例如:
private static final String SQL_DISTINCT_ENAME = "SELECT DISTINCT "+EmpDao.Properties.EName.columnName+" FROM "+EmpDao.TABLENAME;
public static List<String> listEName(DaoSession session) {
ArrayList<String> result = new ArrayList<String>();
Cursor c = session.getDatabase().rawQuery(SQL_DISTINCT_ENAME, null);
try{
if (c.moveToFirst()) {
do {
result.add(c.getString(0));
} while (c.moveToNext());
}
} finally {
c.close();
}
return result;
}
当然,您也可以在查询中添加一些过滤条件。
静态字符串SQL_DISTINCT_ENAME
用于提高性能,因此每次都不必构建查询字符串。
EmpDao.Properties
和EmpDao.TABLENAME
用于始终具有由greendao生成的确切列名和表名。