Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ORMLite选择不同的字段_Android_Sqlite_Ormlite - Fatal编程技术网

Android ORMLite选择不同的字段

Android ORMLite选择不同的字段,android,sqlite,ormlite,Android,Sqlite,Ormlite,我有一个SQLite表(在Android上),它有许多字段,但某些字段是重复的/非规范化的。我想选择一组不同的数据,并将它们用作实际对象 示例 书桌 我想从这个列表中提取一位作者(“约翰尼本人”),并希望我能够用ORMLite而不是用Java手动完成这项工作 我想选择一组不同的数据,并将它们用作实际对象 在QueryBuilder上支持可执行您所需操作的。因此,您的代码看起来像: List<Book> results = booksDao.queryBuilder() .di

我有一个SQLite表(在Android上),它有许多字段,但某些字段是重复的/非规范化的。我想选择一组不同的数据,并将它们用作实际对象

示例

书桌

我想从这个列表中提取一位作者(“约翰尼本人”),并希望我能够用ORMLite而不是用Java手动完成这项工作

我想选择一组不同的数据,并将它们用作实际对象

QueryBuilder
上支持可执行您所需操作的。因此,您的代码看起来像:

List<Book> results = booksDao.queryBuilder()
    .distinct().selectColumns("author").query();

这是我的申请代码

public class DbHelper<T> {
    private Class<T> c;
    private DatabaseHelper db;
    public DbHelper(Class<T> c) {
        this.c = c;
        db = DatabaseHelper.getInstance();
    }
公共类DbHelper{
私人丙级;
专用数据库;
公共DbHelper(c类){
这个.c=c;
db=DatabaseHelper.getInstance();
}
这是个好主意

public List<T> queryForBuilderDistinct(int offset, int limit, String ColumnsName,
       String orderName, boolean isAsc) {
    try {
        Dao<T, Integer> dao = db.getDao(c);
        QueryBuilder<T, Integer> queryBuilder = dao.queryBuilder();
        if (offset != 0) {
            queryBuilder.offset((long) offset);
        }
        if (limit != 0) {
            queryBuilder.limit((long) limit);
        }
        if (orderName != null) {
            queryBuilder.orderBy(orderName, isAsc);
        }
        queryBuilder.distinct().selectColumns(ColumnsName);
        return dao.query(queryBuilder.prepare());
    } catch (SQLException e) {
        LogUtil.e(TAG, "queryForBuilderDistinct", e);
    }
    return new ArrayList<T>();
}
public List queryForBuilderDistinct(int offset,int limit,String ColumnsName,
字符串orderName,布尔值(isAsc){
试一试{
Dao-Dao=db.getDao(c);
QueryBuilder QueryBuilder=dao.QueryBuilder();
如果(偏移量!=0){
queryBuilder.offset((长)offset);
}
如果(限制!=0){
查询生成器限制((长)限制);
}
if(orderName!=null){
orderBy(orderName,isAsc);
}
queryBuilder.distinct().selectColumns(ColumnsName);
返回dao.query(queryBuilder.prepare());
}捕获(SQLE异常){
LogUtil.e(标签“queryForBuilderDistinct”,e);
}
返回新的ArrayList();
}

使用distinct()遍历statementBuilder。列(…)是否返回空数据-
public class DbHelper<T> {
    private Class<T> c;
    private DatabaseHelper db;
    public DbHelper(Class<T> c) {
        this.c = c;
        db = DatabaseHelper.getInstance();
    }
public List<T> queryForBuilderDistinct(int offset, int limit, String ColumnsName,
       String orderName, boolean isAsc) {
    try {
        Dao<T, Integer> dao = db.getDao(c);
        QueryBuilder<T, Integer> queryBuilder = dao.queryBuilder();
        if (offset != 0) {
            queryBuilder.offset((long) offset);
        }
        if (limit != 0) {
            queryBuilder.limit((long) limit);
        }
        if (orderName != null) {
            queryBuilder.orderBy(orderName, isAsc);
        }
        queryBuilder.distinct().selectColumns(ColumnsName);
        return dao.query(queryBuilder.prepare());
    } catch (SQLException e) {
        LogUtil.e(TAG, "queryForBuilderDistinct", e);
    }
    return new ArrayList<T>();
}