【问题标题】:ORMLite if exists queryORMLite 如果存在查询
【发布时间】:2016-01-28 15:40:07
【问题描述】:

我需要一些有关 ORMLite 的帮助。我有 ListView 与从 API 下载的对象。在每个项目上我都有 ToggleButton。单击该 TB 项目后,将其添加到我的数据库中,并且将 TB 状态检查为“已单击”。这一切都发生在我的主片段中,但是当我切换片段并再次回到主片段时,TB 再次设置为“未点击”。所以,我需要做的是检查何时创建主片段,如果来自 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();
        }
    }
}

【问题讨论】:

  • 您是在说可能使用dao.createOrUpdate() 方法吗?如果您在谈论查询,您是否查看过dao.queryBuilder()?
  • 我说的是查询——我需要检查对象是否在数据库中。我尝试使用 QueryBuilder 但不知道如何编写负责该查询的查询。

标签: java ormlite query-builder


【解决方案1】:

有很多方法可以做到这一点。我建议查看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
}

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2012-07-16
    相关资源
    最近更新 更多