最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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
相关文章
- 三角洲行动2026年5月27日最新摩斯电码解析 05-27
- 黛西新皮肤惊喜放送:甜蜜魔法来袭心动不已 05-27
- ONE PIECE 海贼无双4 新项目终于为索隆带来了他应得的回忆剧情。 05-27
- 2026精彩的抽卡游戏盘点 热门的抽卡游戏有哪些 05-27
- 深海迷航2地图位置图解-深海迷航2互动地图入口在哪 05-27
- 10v10英雄坦克激战开启:坦克世界HEAT全平台震撼上线 05-27