/ / Używanie biblioteki trwałości pomieszczenia razem z sqlite - java, android, android-sqlite, android-room

Korzystanie z biblioteki trwałości pomieszczenia wraz z sqlite - java, android, android-sqlite, android-room

Mam projekt, który używa SqLite do przechowywania danych. Teraz chcę utworzyć kilka tabel i chcę utworzyć te tabele przy użyciu biblioteki trwałości pomieszczenia. Czy mogę uzyskać dostęp do tej samej bazy danych przy użyciu pokoju i aplikacji Sqlite Api?

To jest mój kod SQL

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;

To jest kod do tworzenia bazy w moim pokoju

@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()
}
}}

Wiem, że muszę korzystać z migracji. Jeśli migracja jest przydatna, aby używać obu tych api razem. Potrzebujesz sugestii. Teraz chcę uzyskać dostęp do tej samej bazy danych za pomocą sqlite lub pokoju. Czy będzie jakiś problem? Każda sugestia byłaby pomocna Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Czy mogę uzyskać dostęp do tej samej bazy danych przy użyciu pokoju i aplikacji Sqlite Api?

Nie, nie możesz. RoomDatabase byłaby całkowicie oddzielną bazą danych i musiałbyś powoli przenosić swoje tabele do nowej bazy danych. To jedyny sposób na wykorzystanie Room API.

Jeśli wymienione tabele są jedynymi tabelami w projekcie, wygląda na to, że można to zrobić w dość krótkim czasie. Zalecam utworzenie nowej bazy danych całkowicie od zera Entities i Daos. Twoim największym wyzwaniem będzie przekonwertowanie wszystkich zapytań SQLite do Daos i może to zająć najwięcej czasu, ale na koniec będzie warto.

Wiem, że muszę korzystać z migracji. Jeśli migracja jest przydatna, aby używać obu tych api razem.

Migracja służy tylko do obsługi uaktualnień bazy danych w ramach Room Baza danych. Jest to to samo co wywoływanie onUpgrade w SQLite.

Postępuj zgodnie z tym przewodnikiem, aby stopniowo przejść do Room: https://medium.com/google-developers/incrementally-migrate-from-sqlite-to-room-66c2f655b377