Android 如果符合标准,则插入记录房间数据库

Android 如果符合标准,则插入记录房间数据库,android,android-sqlite,android-room,Android,Android Sqlite,Android Room,在这种情况下,我希望将从服务器获取的记录列表与本地DB记录进行比较,如果满足某些条件,则将记录插入数据库中。e、 g.我有实体列,名为mediaUploadedCountmediaUploadedCount在本地数据库中为29。我点击API获取新记录,如果此记录的mediaUploadedCount为28,则在插入时忽略此记录。此记录的一个可能解决方案可能是: 从数据库中获取记录 将服务器记录与本地数据库记录进行比较 插入符合标准的所有记录 但这种方法会减慢插入过程 对于这种情况,我们是否可

在这种情况下,我希望将从服务器获取的记录列表与本地DB记录进行比较,如果满足某些条件,则将记录插入数据库中。e、 g.我有
实体
列,名为
mediaUploadedCount
mediaUploadedCount
在本地数据库中为
29
。我点击API获取新记录,如果此记录的
mediaUploadedCount
28
,则在插入时忽略此记录。此记录的一个可能解决方案可能是:

  • 从数据库中获取记录
  • 将服务器记录与本地数据库记录进行比较
  • 插入符合标准的所有记录
但这种方法会减慢插入过程

对于这种情况,我们是否可以在插入之前应用某些标准或任何其他想法


我在这里看到两种情况:

  • 您将
    mediaUploadedCount
    视为您的主uid,房间为您处理非重复数据

  • 您可以在房间Dao中插入查询条件:


  • 在这个查询中,我想将记录与db列值进行比较。假设我必须插入50条记录,对于所有50条记录,我想将
    mediaUploadedCount
    与数据库中的
    mediaUploadedCount
    值进行比较。对于场景
    ,您将mediaUploadedCount视为主要uid,房间为您处理不重复项,这将不起作用。因为28不同于29,但我想忽略28并保留29作为最新的重新创建。我可以问一下为什么要将此上载计数存储为变量吗?当你得到介质时,你不能通过得到返回介质的大小来达到同样的效果吗?我有一个
    Recyclerview
    ,其中我应该
    29/130
    ,即
    mediaUploadedCount=29
    medialTotalCount=130
    ,为此需要保持单独的计数。如果每次都需要从SD卡文件进行计算,则在
    onBindViewHolder中渲染该文件的速度会较慢
    
        INSERT INTO table-name (column-names) 
        WHERE condition