package com.dayu.henanlibrary.dao;
|
|
import android.content.Context;
|
import android.os.Environment;
|
|
import androidx.annotation.NonNull;
|
import androidx.room.Room;
|
import androidx.room.migration.Migration;
|
import androidx.sqlite.db.SupportSQLiteDatabase;
|
|
import java.io.File;
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-06 16:58
|
* Description: 创建数据库实例
|
*/
|
public class HNBaseDaoSingleton {
|
public static AppDatabase baseDao;
|
public static AppDatabase AsynchBaseDao;
|
public static String SqlitePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + ".dayu" + File.separator + "data" + File.separator;
|
|
//MyFileUtil.SqlitePath +
|
public static AppDatabase getInstance(Context context) {
|
if (baseDao == null) {
|
baseDao = Room.databaseBuilder(
|
context,
|
AppDatabase.class,
|
SqlitePath + "ConfigurationData"
|
).allowMainThreadQueries().addMigrations(migration_2_3).build();
|
}
|
return baseDao;
|
}
|
static Migration migration_2_3 = new Migration(2, 3) {
|
@Override
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
// 在此处编写从版本 2 到版本 3 的迁移逻辑
|
// 例如,你可以执行 SQL 命令来修改表结构,迁移数据等操作
|
|
// 如果需要,你还可以执行其他的 SQL 命令来迁移数据等操作
|
}
|
};
|
public static AppDatabase getAsynchInstance(Context context) {
|
|
if (AsynchBaseDao == null) {
|
AsynchBaseDao = Room.databaseBuilder(
|
context,
|
AppDatabase.class,
|
SqlitePath + "ConfigurationData"
|
).build();
|
}
|
return AsynchBaseDao;
|
|
}
|
|
|
}
|