Gaj*_*lur 5 android android-room
我在我的示例应用程序中使用 RoomDB。我能够对 DB 执行 CRUD 操作。但我无法查看 db 文件。我想在 sqlite DB 浏览器中查看表结构。
这是我的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;
}
}
Run Code Online (Sandbox Code Playgroud)
帮我获取数据库文件。
我就是这样做的。在Android Studio 3.1中,
<your package>/databases如果您看不到数据库文件,请考虑使用以下代码复制该文件
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)
}
}
Run Code Online (Sandbox Code Playgroud)
更新:db 文件是空的,您需要 .db-shm 和 .db-wal 来打开 .db 文件。