gpt4 book ai didi

android - 房间数据库,inMemoryDatabaseBuilder和databaseBuilder有什么区别?

转载 作者:行者123 更新时间:2023-11-29 14:26:15 26 4
gpt4 key购买 nike

我们可以通过两种方法得到一个数据库throw


 /**
* Copyright:MyApplication
* Author: liyang <br>
* Date:2018/6/15 下午5:07<br>
* Desc: <br>
*/
@Database(entities = {Pet.class ,User.class}, version = 1)
public abstract class RoomDb extends RoomDatabase {
private static RoomDb INSTANCE;

private static final Object sLock = new Object();

public abstract UserDao getUserDao();

public abstract PetDao getPetDao();

public static RoomDb getInstance(Context context) {
if (INSTANCE == null) {
synchronized (sLock) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),RoomDb.class,"Sample.db").build();
}
}
}
return INSTANCE;
}
public static RoomDb getInMemoreyDatabase(Context context){
if (INSTANCE == null) {
synchronized (sLock) {
if (INSTANCE == null) {
INSTANCE = Room.inMemoryDatabaseBuilder(context.getApplicationContext(),RoomDb.class).build();
}
}
}
return INSTANCE;
}
}

但是我真的很想知道他们有什么区别!getInMemoreyDatabase 是否比 Room.databaseBuilder 运行得更快?

最佳答案

inMemoryDatabaseBuilder() :数据库将在系统内存中创建,如果您终止应用程序(终止您的进程),数据库将被删除并且数据不会被持久化。这可以在测试时使用。

databaseBuilder() : 数据库将在 /data/data/com.your.app 中创建并持久化。您将在生产中使用它。

关于android - 房间数据库,inMemoryDatabaseBuilder和databaseBuilder有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50886597/

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