小编E. *_*ter的帖子

Android-app:切换到房间数据库后旧数据库仍然存在

切换到房间数据库后,我删除了 SQLite-Helper 类。但如果我安装应用程序,旧数据库仍会在我的智能手机上创建。

我打开了设备文件资源管理器,并在我的项目文件夹 /databases 下找到了以下数据库

local.db 是我的旧数据库,日期为 1970-01-19,2.5 MB local_db 是新房间数据库 local_db-shm 和 local_db-wal 似乎是一些房间数据

即使我卸载该应用程序并重新安装,local.db 也会再次出现。删除它也没有帮助。

但我认为我已经删除了所有旧的 SQLiteHelper 代码。那么有人知道我在哪里可以找到摆脱旧数据库的关键吗?

database sqlite android android-room

2
推荐指数
1
解决办法
917
查看次数

房间数据库使用@query 更新多行

我想更新房间数据库中的多行。但我没有对象 - 我只有 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)

似乎不是一个好的解决方案

android sql-update kotlin android-room

1
推荐指数
2
解决办法
6406
查看次数

标签 统计

android ×2

android-room ×2

database ×1

kotlin ×1

sql-update ×1

sqlite ×1