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