使用 ormlite 和 android 获取给定 id 的下一行和上一行
get next and previous rows of a given id with ormlite and android
我想使用 ormlite 和 android 获取给定 ID 的下一行和上一行
table 中的 ID 不会自动递增
您可以这样做:
获取所有行:
List<MyDataObject> list = myDao.queryForAll();
在列表中搜索您的对象的索引:
int myIndex;
for (MyDataObject obj: list) {
if (obj.getId().equals("Myid")) {
myIndex = list.indexOf(obj)
}
}
获取您想要的物品:
MyDataObject previousObject = list.get(myIndex+1);
MyDataObject nextObject = list.get(myIndex-1);
这是一种方法。另一种方法是仅获取您的 ID 列表,然后搜索您想要的 ID(下一个和上一个 ID),最后按 ID 进行查询。
I want to get next and previous rows of a given id with ormlite and android the ids in the table is not auto incremented
我不是 100% 确定我理解这个问题,但你当然可以 select 对于大于你的 ID、按 ID 排序并限制为 1 的项目。这将给出下一个 (更大)行。使用小于会给出前一行。
类似于:
QueryBuilder<Foo> qb = fooDao.queryBuilder();
// we want the items greater than this id
qb.where().gt("id", id); // use lt for previous
// we only want the first one
qb.limit(1);
// order by the id
qb.orderBy("id");
Foo previousFoo = qb.queryForFirst();
希望对您有所帮助。
我想使用 ormlite 和 android 获取给定 ID 的下一行和上一行 table 中的 ID 不会自动递增
您可以这样做: 获取所有行:
List<MyDataObject> list = myDao.queryForAll();
在列表中搜索您的对象的索引:
int myIndex;
for (MyDataObject obj: list) {
if (obj.getId().equals("Myid")) {
myIndex = list.indexOf(obj)
}
}
获取您想要的物品:
MyDataObject previousObject = list.get(myIndex+1);
MyDataObject nextObject = list.get(myIndex-1);
这是一种方法。另一种方法是仅获取您的 ID 列表,然后搜索您想要的 ID(下一个和上一个 ID),最后按 ID 进行查询。
I want to get next and previous rows of a given id with ormlite and android the ids in the table is not auto incremented
我不是 100% 确定我理解这个问题,但你当然可以 select 对于大于你的 ID、按 ID 排序并限制为 1 的项目。这将给出下一个 (更大)行。使用小于会给出前一行。
类似于:
QueryBuilder<Foo> qb = fooDao.queryBuilder();
// we want the items greater than this id
qb.where().gt("id", id); // use lt for previous
// we only want the first one
qb.limit(1);
// order by the id
qb.orderBy("id");
Foo previousFoo = qb.queryForFirst();
希望对您有所帮助。