我在我的示例应用程序中使用RoomDB.我能够在DB上执行CRUD操作.但我无法查看db file.i想要在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;

}

}

帮我获取DB文件.

解决方法:

这就是我做到的.在Android Studio 3.1中,

>访问视图>工具Windows>设备文件资源管理器.

>导航到文件夹/ data / data /< your package> / databases

>保存以.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)

}

}

标签:android,android-room

来源: https://codeday.me/bug/20190701/1347632.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐