一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android开发-Room数据库实战教程(可复用代码)

时间:2026-05-27 12:30:01 编辑:袖梨 来源:一聚教程网

Room数据库作为Android开发的利器,本文将详细介绍其使用流程,包括类创建、数据库操作等关键步骤。 1、Room类创建与更新语法 public class XxxRoom { private static final String TAG = "TAG"; private static volatile XxxRoom instance = null; private static final String DB_NAME = "xxx_db"; private XxxDataBase mXxxDatabase; private Context applicationContext; //版本更新 public static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Override public void migrate(@NonNull SupportSQLiteDatabase database) { database.execSQL("ALTER TABLE LastSong ADD COLUMN biz_id integer NOT NULL DEFAULT 0"); } }; public static final Migration MIGRATION_3_4 = new Migration(3, 4) { @Override public void migrate(@NonNull SupportSQLiteDatabase database) { database.execSQL("ALTER TABLE LastSong ADD COLUMN biz_topic text"); } }; public static XxxRoom getInstance() { XxxRoom result = instance; if (result == null) { synchronized (XxxRoom .class) { result = instance; if (result == null) { instance = result = new XxxRoom(); } } } return result; } public void init(Context context) { try { applicationContext = context.getApplicationContext(); mXxxDatabase = Room.databaseBuilder(applicationContext, XxxDataBase.class, DB_NAME) .allowMainThreadQueries() .fallbackToDestructiveMigration()//数据库更新时删除数据重新创建 .addMigrations(MIGRATION_1_2) .addMigrations(MIGRATION_3_4) .build(); } catch (Exception exception) { DLog.e(TAG, "日志输出------>exception:" + exception); } } public XxxDataBase getXxxDatabase() { return mXxxDatabase; } public Context getApplicationContext() { return applicationContext; } } 2、RoomDatabase类实现 @Database(entities = {SongProcess.class, LastSong.class, AlbumSong.class, LocalSongProcess.class, LocalLastSong.class, LocalAlbumSong.class}, version = 5) public abstract class XxxDataBase extends RoomDatabase { public abstract SongProcessDao getSongProcessDao(); public abstract LastSongDao getLastSongDao(); public abstract

热门栏目