天天看點

android中通路已有的sqlite資料庫

這個問題也困擾了我好久。經過多方嘗試終于解決。

僅供向我這樣的初學者參考。

1.先将已有的.db檔案拷貝到android預設的目錄下。

很多人就在這裡擋住了,怎麼copy呢?這裡就要用到android自帶的tools  工具了。【詳細介紹可參考:http://hi.baidu.com/_java/blog/item/df0a8c34d5b4ffbfd0a2d3e9.html】

首先,查詢預設目錄有哪些.db

        [開始 - cmd  -輸入adb shell --回車(也可開始 - adb shell)] 這樣啟動了adb.exe視窗

        ls:顯示目錄

        cd 目錄名  :進入目錄,有人問那傳回上一目錄是什麼?回答cd ..(注意cd後有一空隔)   

        通過連續的ls,cd就能看到我們預設db目錄是在/data/data/[你的包名]如com.android/databases/   

好,知道目錄徑了,下面把我們的.db拷貝到下面。

        [開始 - cmd ]進入普通cmd視窗。

        輸入:adb push D:/feiv.db /data/data/com.android/databases/feiv.db [将本地檔案拷貝到預設android目錄]

               adb pull /data/data/com.android/databases/feiv.db D:/feiv.db  [當然這個是拷出來啦]

        一點注意:是[/data]而不是[data]

經過上面的操作後,你再在adb.exe視窗裡輸入ls就能看到剛拷進去的檔案了。

2.好了,有.db了,現在就是在代碼裡用就可以了。

用法很多地方也有介紹

我這裡用this.sqliteDb = mcontext.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);

openOrCreateDatabase()這個方法是打開一個db,如果沒有的話,則會建立。

android中通路已有的sqlite資料庫

對了,還值得提一點,就是android 裡用simpleCursorAdapter要求表裡字段必須有"_id"這樣的字段[

android中通路已有的sqlite資料庫

不知道Android平台為什麼這樣設計?],不然查詢報錯。而我們導入進去的表裡可能沒有含有_id這樣的字段,是以必須修改或增加。