为什么我的数据库文件的大小总是通过 Room 库构建的 4KiB?
Why the size of my database file is always 4KiB build through the Room library?
我通过这个guide通过Room建立数据库。这是我的构建代码:
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
NodesRoomDatabase.class, "nodes_database.db")
.build();
然后我通过DAO插入信息:
public void insert(NodesData nodesData) {
new InsertAsyncTask(nodesDao).execute(nodesData);
}
private static class InsertAsyncTask extends AsyncTask<NodesData, Void, Void> {
private NodesDao asyncDao;
public InsertAsyncTask(NodesDao asyncDao) {
this.asyncDao = asyncDao;
}
@Override
protected Void doInBackground(NodesData... nodesData) {
asyncDao.insert(nodesData[0]);
return null;
}
}
建立数据库并插入内容后。我可以在 data/data/<package name>/databases/
下找到 nodes_database.db
、nodes_database.db-shm
和 nodes_database.db-wal
,但 nodes_database.db
的大小始终只有 4 KiB,并且 table 是空的。但是我可以通过Stetho调试查询到数据库的所有内容。
The file size image
设备:一加5,Android奥利奥8.1
那么,我的代码有什么问题?
SQLite 就是这样工作的。如果您想在 Android 之外查询您的数据库,请确保同时导出 .db 和 .db-wal 文件。
我通过这个guide通过Room建立数据库。这是我的构建代码:
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
NodesRoomDatabase.class, "nodes_database.db")
.build();
然后我通过DAO插入信息:
public void insert(NodesData nodesData) {
new InsertAsyncTask(nodesDao).execute(nodesData);
}
private static class InsertAsyncTask extends AsyncTask<NodesData, Void, Void> {
private NodesDao asyncDao;
public InsertAsyncTask(NodesDao asyncDao) {
this.asyncDao = asyncDao;
}
@Override
protected Void doInBackground(NodesData... nodesData) {
asyncDao.insert(nodesData[0]);
return null;
}
}
建立数据库并插入内容后。我可以在 data/data/<package name>/databases/
下找到 nodes_database.db
、nodes_database.db-shm
和 nodes_database.db-wal
,但 nodes_database.db
的大小始终只有 4 KiB,并且 table 是空的。但是我可以通过Stetho调试查询到数据库的所有内容。
The file size image
设备:一加5,Android奥利奥8.1
那么,我的代码有什么问题?
SQLite 就是这样工作的。如果您想在 Android 之外查询您的数据库,请确保同时导出 .db 和 .db-wal 文件。