gpt4 book ai didi

java - 将 Room 持久性库与 sqlite 一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:18 24 4
gpt4 key购买 nike

我有一个使用 SqLite 存储数据的项目。现在我想创建一些表,并想使用 Room 持久性库创建这些表。我可以使用 room 和 Sqlite Api 访问同一个数据库吗?

这是我的sqlite代码

public class DatabaseHelper extends SQLiteOpenHelper {

// Table names
static final String TABLE_FOOD = "_food_table";
static final String TABLE_CUISINE = "_cuisine_table";
static final String TABLE_UNITS = "_units_table";
static final String TABLE_INGREDIENTS = "_ingredients_table";
static final String TABLE_CART = "_cart_table";
public static final String CLIENT_TABLE_CART = "_client_cart_table";
static final String TABLE_SUPPLIER = "_supplier_table";

private static final String DB_NAME = "duplate.db";
private static final int DB_VERSION = 3;

这是我的房间数据库创建代码

@Database(entities = arrayOf(IngredientType::class), version = 3)
abstract class AppDatabase : RoomDatabase() {

abstract fun ingredientTypeDao(): IngredientTypeDao

companion object {
private val DB_NAME = "duplate.db"
@Volatile
private var instance: AppDatabase? = null

@Synchronized
fun getInstance(context: Context): AppDatabase? {
if (instance == null) {
instance = create(context)
}
return instance
}

private fun create(context: Context): AppDatabase {
return Room.databaseBuilder(
context,
AppDatabase::class.java,
DB_NAME).build()
}
}}

我知道我需要使用迁移。如果迁移很方便,可以同时使用这两个 api。需要建议。现在我想使用 sqlite 或 room 访问同一个数据库。会不会有什么问题?任何建议都会有所帮助谢谢

最佳答案

Can I access same database using room and Sqlite Api?

不,你不能。 RoomDatabase 将是一个完全独立的数据库,您必须慢慢地将您的表移动到新数据库。这是使用 Room API 的唯一方法。

如果您列出的表是项目中仅有的表,那么它看起来可以在相当短的时间内完成。我建议您使用 EntitiesDaos 从头开始​​创建新数据库。您最大的挑战是将所有 SQLite 查询转换为 Daos,这可能会花费最多的时间,但最终是值得的。

I know I need to use migration. If migration is the handy to use this both api together.

迁移仅用于处理 Room 数据库内的数据库升级。这与在 SQLite 中调用 onUpgrade 相同。

按照本指南逐步移动到 Room: https://medium.com/google-developers/incrementally-migrate-from-sqlite-to-room-66c2f655b377

关于java - 将 Room 持久性库与 sqlite 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48440178/

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