我希望能够估算给定Room database中每一行可能采用的NVM大小;这些值都是Java中的字符串,因此我需要知道Room将用于底层SQLite数据库的编码格式 - 如何告诉Room使用哪种编码(例如UTF-8)或以编程方式检查编码它的编码方式用于文字?假设编码不可配置,它将被硬编码为什么?
我期待像
这样的东西@Database(entities = {TestEntity.class}, version = 1, encoding = "UTF-8")
public abstract class AppDatabase extends RoomDatabase
工作,但无法识别编码参数。
答案 0 :(得分:0)
在您的会议室数据库构建器中添加create回调,然后执行PRAGMA encoding='UTF-8';
Room.databaseBuilder(context, AppDatabase.class, DB_NAME)
.addCallback(new Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
// add this code
db.execSQL("PRAGMA encoding='UTF-8';");
}
}).allowMainThreadQueries().build();