gpt4 book ai didi

android - 如何在sqlite DB浏览器中查看Room Database的表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:38 68 4
gpt4 key购买 nike

我在示例应用程序中使用 RoomDB。我能够对数据库执行 CRUD 操作。但我无法查看数据库文件。我想在 sqlite 数据库浏览器中查看表结构。

这是我的APPDatabase

 @Database(entities = {User.class}, version = 1,exportSchema = false)

public abstract class AppDatabase extends RoomDatabase {

private static AppDatabase INSTANCE;
public abstract UserDao userDao();
public static AppDatabase getAppDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "user-database")
.allowMainThreadQueries()
.build();
}
return INSTANCE;
}
public static void destroyInstance() {
INSTANCE = null;
}
}

帮我获取数据库文件。

最佳答案

我是这样做的。在 Android Studio 3.1 中,

  1. 访问 View >工具窗口>设备文件资源管理器。
  2. 导航到文件夹/data/data/<your package>/数据库
  3. 保存以.db结尾的数据库文件

如果你看不到你的数据库文件,考虑用下面的代码复制文件

fun exportDB(context: Context){
try {
val sd = Environment.getExternalStorageDirectory()

if (sd.canWrite()) {
val backupDBPath = "database.db"
val currentDB = context.getDatabasePath("database.db")
val backupDB = File(sd, backupDBPath)

val src = FileInputStream(currentDB).getChannel()
val dst = FileOutputStream(backupDB).getChannel()
dst.transferFrom(src, 0, src.size())
src.close()
dst.close()
Log.i("database","export database done. Original path: $currentDB")
}else{
Log.i("database","cannot write database")
}
} catch (e: Exception) {
Log.e("database","export database failed. "+e.message)
}
}

更新:the db file is empty, and u need .db-shm and .db-wal to open .db file.

关于android - 如何在sqlite DB浏览器中查看Room Database的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900007/

68 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com