SQLite是止前最流行的數據庫軟件,它支持SQL語言,可以非常好的提升軟件的性能,開源性也極好,東坡這里附上安卓Android sqlite萬能數據庫,有需要的歡迎下載!
安卓Android sqlite萬能數據庫特色介紹
安卓里常用的存儲有方法中少不了數據庫的使用,主要是對單表的操作,多表的操作此處不涉及。每次使用數據庫都會有繁瑣的代碼要寫,大致思路是繼承自SQLiteOpenHelper寫一個數據庫操作子類,然后重寫onCreate方法,寫上數據庫的建表語句,重寫onUpgrade方法,寫上數據庫的升級執行代碼,此外還有繁瑣的增、刪、改、查語句。每次建一張表都要做這些重復的工作,能不能用一種通用的方法,把這些繁瑣的事務交給程序自動去完成呢?代碼里告訴你答案。
android操作sqlite數據庫操作心得
寫一下android操作數據庫中的一些準備。
首先,配一下adb的環境變量,因為每次都要到adb的目錄下去啟動實在太麻煩了,下面是具體步驟,當然也可以該其他文件,我習慣改這個,可以改完后可以source一下使它生效。
1、sudogedit/etc/profile
2、將下面的兩句加到上面打開的文件里
exportANDROID_HOME=/home/sdk文件路徑
exportPATH=$PATH:$ANDROID_HOME/platform-tools
3、重啟電腦,大功告成!!
adb配好以后,我們最好還要給手機里的數據庫訪問的權限,一般在/data/data/包名/database里面,用adbshell進入后su獲得手機root權限,然后給權限chmod。
要讀數據庫文件的話就用命令sqlite3數據庫文件,其中的數據庫可以直接在adbshell中運行sqlite3,但我按照網上弄的就是不能在adbshell中打開sqlite3數據庫,說命令沒有找到,我該傳的文件都傳了,沒辦法,只有在eclipse里的ddms的fileexplore里把數據庫文件到處然后在Linux終端里運行sqlite3數據庫來看了。
還有要注意的是寫sql語句時一定要注意"select*from"+TABLE_NAME中的from和引號要留有空格,不然的話就連在一起了。
下面的有一個知識要講一下,sqlite的增加,刪除等操作都挺簡單的,麻煩的就是查詢操作,一般都借用Cursor來保存查詢數據,一開始我沒怎么注意這是一個指針類型,指向數據庫里的數據,而我一開始寫的時候把數據庫的關閉操作寫在了Cursor操作的前面,也就是說先把數據庫關閉了再對Cursor對象進行操作,這樣的話就造成了Cursor的空指針,也就注定杯具了好久。。。
常見問題
1、為什么要把已存在數據庫文件放在res/raw文件夾下, 放在其它地方可以嗎?
如果放在res/raw文件夾下,數據庫文件在apk打包的時候就必須確定并且不可更改,否則每次都要重新編譯生成apk,在使用的時候會很麻煩,所以最好是將數據庫文件放置在sd卡的某個位置。
經過驗證得知,數據庫文件可以放置到其它位置,例如sd卡的某個位置,至于放在什么位置根據具體情景來覺得,上面的代碼只是一個例子而已,當然放在不同的位置,訪問文件的時候的方式也不一樣。當然注意要訪問sd卡的時候一定要在AndroidManifest.xml文件中添加訪問sd卡的權限。
2、上面的代碼沒有判斷已存在的數據庫文件是否存在?一是為了代碼的嚴謹性考慮,二是因為在特殊的機子上可能不需要之前已經存在的數據庫,希望自己配置并生成數據庫,此時就不需要復制之前的數據庫。
這個問題根據實際情景來決定是否需要判斷已存在的數據庫文件是否存在,判斷的時候根據數據庫文件放置的位置不同而不同,另外如果防止在res/raw文件夾下沒有辦法判斷數據庫文件是否存在,因為訪問res/raw文件夾下的文件使用的方法是R.raw.xxx,如果文件不存在,沒辦法得到數據庫文件的對象,所以也就沒辦法判斷,補充一個知識res/raw文件夾下的文件的絕對路徑是”android.resource://”+ getPackageName() + R.raw.xxx。
- PC官方版
- 安卓官方手機版
- IOS官方手機版