搜尋

首頁  >  問答  >  主體

Android中能不能判断一个数据库是create来的,还是open来的?

先简单说一下我想实现的功能,就是创建数据库的时候,同时也会创建一个表,然后就往表里插入数据;之后,就是打开数据库,然后对表的数据进行更新。
所以我想知道这个数据库是创建来的,还是打开来的,好让我执行不同的操作。
而我创建数据库的方法是继承SQLiteOpenHelper类和实现getWritableDatabase方法。具体如下图:

这样的话,我就打算判断这个mSqLiteDatabase(这是SQLiteDatabase的一个实例对象,截图没放出来)是创建来的,还是打开来的。因为我看文档里说,上图的方法是:存在该数据库就打开,不存在就创建。而getWritableDatabase方法是返回一个数据库的对象。所以我就这样瞎想,不知道可不可以判断。如果不行的话,有没有其它可替代的方法。

阿神阿神2772 天前406

全部回覆(5)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:30:58

    依照你的需求來說,其實不用管它是新建的還是打開的吧,打開後查詢下有沒數據,有就更新,沒有就新建。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:30:58

    只要在DatabaseHelperonCreate(SQLiteDatabase)方法裡建立表格就好了呀。資料庫在第一次創建的時候就會呼叫這個方法的。之後你就只要插入資料就行了

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:30:58

    我一直都用xutils操作資料庫,這個對資料庫封裝的很好,也很簡單。
    裡面有個db.openorupdate方法,會自動比較數據,確定開啟或更新。

    如果用android原生的方法,也沒必要判斷,你只需要確認是否有新數據,有的話就插入就好了

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 17:30:58

    只有在第一次開啟資料庫的時候才會呼叫onCreate,這時候你建立表格就行了,下次開啟的話不會再呼叫onCreate了。

    回覆
    0
  • PHPz

    PHPz2017-04-17 17:30:58

    首先非常感謝各位的解答,根據xiluoduyu的回答,的確能夠實現我想要的功能,換一下思路想,的確可以。但我在提起這個問題的過程中發現,標題所描述的問題其實也是我想知道,想弄清楚的。可能這個問題比較奇葩,甚至是沒有答案的,所以先作個記錄,以後再回來瞧瞧。感謝各位!

    回覆
    0
  • 取消回覆