检查我的值是否存在于数据库中?

时间:2019-08-31 10:02:19

标签: java android database

我从服务器读取了一些数据并将其保存到数据库中。 我想检查是否有任何新数据,所以我请求服务器并获得10个帖子(我的帖子具有ID,标题,图像等)。现在,我想比较我退出的10个新帖子标题整个数据库。 我喜欢这样:我使ArrayList()从服务器获取数据并发送到它:

   List<Post> check = new ArrayList<Post>();   

这是我的数据库值

   List<dbSample> txtsSave = new ArrayList<>();

,然后像这样检查。 (我一起检查标题)。

         if (database.exists()) {
        for (int i = 0; i < check.size(); i++) {
            for (int j = 0; j < txtsSave.size(); j++) {
                if (check.get(i).getTitle().equals(txtsSave.get(j).getTitle())) {
                  Log.i("NewData","No new Data");
                } else {
                    Log.i("NewData"," new Data");
                }
            }
        }
    }

但是我可以同时看到Log in locat。如何将它们进行比较? 例如,我的txtsave大小为30而我的支票大小为10。 有什么建议吗?

3 个答案:

答案 0 :(得分:0)

这样做:

for (int i = 0; i < check.size(); i++) {
            for (int j = 0; j < txtsSave.size(); j++) {
                if (check.get(i).getTitle().equals(txtsSave.get(j).getTitle())) {
                  Log.i("NewData","No new Data");
                  break;
                } 
                if(j == (txtsSave.size() - 1))  {
                    Log.i("NewData"," new Data");
                }
            }
        }

答案 1 :(得分:0)

我认为对您来说最好的方法是在这样的列表中使用.contains(object):

 for (int i = 0; i < check.size(); i++) {
      if(txtsSave.contains(check.get(i)){
                Log.i("NewData","No new Data");
                txtsSave.add(check.get(i));
            } else {
                Log.i("NewData"," new Data");
            }  
  }

答案 2 :(得分:0)

您可以通过以下方式检查数据库中是否存在对象:

    public boolean hasObject(String string) {
    String selectString = "SELECT * FROM " + MY_TABLE_NAME + " WHERE column_name=?";

    Cursor cursor = myDatabase.rawQuery(selectString, new String[]{string});

    boolean hasObject = false;
    if (cursor.moveToFirst()) {
      hasObject = true;

    }

    cursor.close();    
    return hasObject;
  }