AndroidApp/AppDatabase.java

45 lines
1.6 KiB
Java
Raw Permalink Normal View History

2025-07-11 18:29:35 +08:00
package com.example.myapplication.DataBase;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
import com.example.myapplication.model.AudioEntity;
import com.example.myapplication.model.ImageEntity;
import com.example.myapplication.model.Turbine;
@Database(entities = {ImageEntity.class, Turbine.class, AudioEntity.class}, version = 4) // 版本号增加,添加新实体
public abstract class AppDatabase extends RoomDatabase {
public abstract ImageDao imageDao();
public abstract TurbineDao turbineDao(); // 添加新的DAO
public abstract AudioDao AudioDao();
private static volatile AppDatabase INSTANCE;
private static final Migration MIGRATION_4_5 = new Migration(4, 5) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
}
};
public static AppDatabase getDatabase(Context context) {
if (INSTANCE == null) {
synchronized (AppDatabase.class) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "app_database")
.fallbackToDestructiveMigration() // 简单处理正式项目应该实现Migration
.build();
}
}
}
return INSTANCE;
}
}