切换到房间数据库后,我删除了 SQLite-Helper 类。但如果我安装应用程序,旧数据库仍会在我的智能手机上创建。
我打开了设备文件资源管理器,并在我的项目文件夹 /databases 下找到了以下数据库
local.db 是我的旧数据库,日期为 1970-01-19,2.5 MB local_db 是新房间数据库 local_db-shm 和 local_db-wal 似乎是一些房间数据
即使我卸载该应用程序并重新安装,local.db 也会再次出现。删除它也没有帮助。
但我认为我已经删除了所有旧的 SQLiteHelper 代码。那么有人知道我在哪里可以找到摆脱旧数据库的关键吗?
我想更新房间数据库中的多行。但我没有对象 - 我只有 ID。
如果我更新一行,我会在我的 DAO 中写这样的内容:
@Query("UPDATE items SET place = :new_place WHERE id = :id;")
fun updateItemPlace(id:Int, new_place:String)
Run Code Online (Sandbox Code Playgroud)
对于多行,我需要这样的东西:
@Query("UPDATE items SET place = :new_place WHERE id = :ids;")
fun updateItemPlaces(ids:List<Int>, new_place:String)
Run Code Online (Sandbox Code Playgroud)
或者
@Query("UPDATE items SET place = :new_place WHERE id IN :ids;")
fun updateItemPlaces(ids:String, new_place:String)
Run Code Online (Sandbox Code Playgroud)
我在我的 ids-String 中写了类似 '(1,4,7,15)' 的内容
有人可以告诉我进行此类更新的好方法吗
因为像
val ids = ListOf(1,4,7,15)
ids.forEach{
itemDao.updateItemPlace(it,'new place')
}
Run Code Online (Sandbox Code Playgroud)
似乎不是一个好的解决方案