| 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; | 
|   | 
|     } | 
|   | 
|   | 
| } |