ORMLite 如果存在查询
ORMLite if exists query
我需要 ORMLite 方面的帮助。我有 ListView,其中包含从 API 下载的对象。在每个项目上我都有 ToggleButton。单击该 TB 项目后,该项目将添加到我的数据库中,并且 TB stata 被检查为 "clicked"。这一切都发生在我的主要片段中,但是当我切换片段并再次回到主要片段时,TB 再次设置为 "unclicked"。所以,我需要做的是检查主片段何时被创建,如果来自 listView 的对象存在于数据库中,如果是的话,检查 ToggleButton 状态是否被点击(我认为这是一个正确的选择)但我不知道如何写查询:/
这是我从适配器向数据库添加项目的代码:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
try {
final Dao<Concert, Integer> concertDao = getHelper().getConcertDao();
concertDao.create(concertList.get(position));
} catch (SQLException e) {
e.printStackTrace();
}
}
}
有很多方法可以实现这一点。我建议查看 QueryBuilder documentation。你显然可以做这样的事情:
if (concertDao.queryForId(concert.getId()) != null) {
// the concert exists in the database
}
如果你不想反序列化对象,你可以这样做:
if (concertDao.queryBuilder().where().eq("id", concert.getId()).countOf() > 0) {
// the concert exists in the database
}
我需要 ORMLite 方面的帮助。我有 ListView,其中包含从 API 下载的对象。在每个项目上我都有 ToggleButton。单击该 TB 项目后,该项目将添加到我的数据库中,并且 TB stata 被检查为 "clicked"。这一切都发生在我的主要片段中,但是当我切换片段并再次回到主要片段时,TB 再次设置为 "unclicked"。所以,我需要做的是检查主片段何时被创建,如果来自 listView 的对象存在于数据库中,如果是的话,检查 ToggleButton 状态是否被点击(我认为这是一个正确的选择)但我不知道如何写查询:/
这是我从适配器向数据库添加项目的代码:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
try {
final Dao<Concert, Integer> concertDao = getHelper().getConcertDao();
concertDao.create(concertList.get(position));
} catch (SQLException e) {
e.printStackTrace();
}
}
}
有很多方法可以实现这一点。我建议查看 QueryBuilder documentation。你显然可以做这样的事情:
if (concertDao.queryForId(concert.getId()) != null) {
// the concert exists in the database
}
如果你不想反序列化对象,你可以这样做:
if (concertDao.queryBuilder().where().eq("id", concert.getId()).countOf() > 0) {
// the concert exists in the database
}