如何检查Android中是否存在数据库?

时间:2018-03-13 11:53:07

标签: android

我正在使用Room API在我的Android应用中实现数据库。似乎每次加载我的应用程序时,它都会尝试一次又一次地创建数据库。有没有办法限制这个?

 db = Room.databaseBuilder(context, AppDatabase.class, "database-name").build();

4 个答案:

答案 0 :(得分:3)

当你创建数据库时,它会在应用程序启动时调用它们的db create.you用于app活动下面的代码,并且应用程序类调用中的manifest文件中的活动调用就像代码下面使用的那样...

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>button text 1</button>
    <button>button text 2</button>
    <button>button text 3</button>

}  并添加以下行清单文件..在应用程序标记中添加以下行

public class AppActivity extends Application {

AppDatabase db;

@Override
public void onCreate() {
    super.onCreate();
    db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build();
}

public AppDatabase getDatabase() {
    return db;
}

答案 1 :(得分:1)

您可以在db中获取实体计数(TODO应用-示例)。实体>0。

input[type="file"]

// DB类

it("check download file to input", () => {
  const files = [
    {
      name: "test.png",
      size: 50000,
      type: "image/png"
    }
  ];
  const wrapper = mount(InputCropper);
  const input = wrapper.find('input[type="file"]');
  input.files = files;
  input.trigger("change");

  expect(input.files.length).to.equal(1);
});

// Dao界面

class App: Application() {
    override fun onCreate() {
        super.onCreate()
        instance = this
        database = Room.databaseBuilder(applicationContext,
            AppDatabase::class.java, "database").build()
    }
    companion object {
        lateinit var instance: App
        lateinit var database: AppDatabase
    }
}

//型号

 @Database(entities = [Task::class], version = 1, exportSchema = false)
       abstract class AppDatabase : RoomDatabase() {
       abstract fun taskDao(): TaskDao
}

// CheckDB

   @Dao
    interface TaskDao {
        @Query("SELECT COUNT(id) FROM tasks")
        fun getTasksCount(): Int
    }

答案 2 :(得分:0)

您正在使用db,实际上是一个文件。您可以检查,如果存在,此方法可能会有所帮助:

private static boolean doesDatabaseExist(Context context, String dbName) {
    File dbFile = context.getDatabasePath(dbName);
    return dbFile.exists();
}

答案 3 :(得分:0)

试试这个

if (!db.exists()) {
    // Database does not exist so copy it from assets here
    Log.i("Database", "Not Found");
} else {
    Log.i("Database", "Found");
}