Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android數據庫操作技巧應用

Android數據庫操作技巧應用

編輯:高級開發

android這樣一個開源的手機操作系統中,對於數據庫的操作是不可避免而且非常重要的。在這裡我們就為大家詳細介紹一下android數據庫操作的一些基本應用技巧,以方便大家的學習。

  • android數字證書具體應用機制
  • android數據存儲訪問機制
  • android可選API適用范圍
  • android調試程序正確進行方式
  • android根文件系統相關應用介紹

android數據庫操作1. 創建數據庫

android 提供了標准的數據庫創建方式。繼承SQLiteOpenHelper ,實現onCreate 和 onUpgrade 兩個方法,有個好處就是便於數據庫版本的升級。

  1. private static class DatabaseHelper extends SQLiteOpenHelper {
  2. DatabaseHelper(Context context) {
  3. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  4. }
  5. @Override
  6. public void onCreate(SQLiteDatabase db) {
  7. }
  8. @Override
  9. public void onUpgrade(SQLiteDatabase db, int oldVersion,
  10. int newVersion) {
  11. }
  12. }

android數據庫操作2. 操作數據庫

之前一直疑惑於一個功能操作是否要每次打開數據庫完之後,要立即關閉數據庫? 還是一個應用程序只開一次數據庫,等到應用程序退出時再關閉數據庫? 其中的顧慮在性能和多線程。 想到一個方法 ,將數據庫操作類作為單件,將數據庫的lock 設置為false. 關閉數據庫的lock., 而在每一個Table的修改時加上相應的Table鎖。

  1. public class WebVIEwDatabase {
  2. public static synchronized WebVIEwDatabase getInstance(Context context) {
  3. // use per table Mutex lock, turn off database lock, this
  4. // improves performance as database's ReentrantLock is expansive
  5. mDatabase.setLockingEnabled(false);
  6. }
  7. // synchronize locks
  8. private final Object mHttpAuthLock = new Object();
  9. public boolean hasHttpAuthUsernamePassWord() {
  10. synchronized (mHttpAuthLock) {
  11. return hasEntrIEs(TABLE_HTTPAUTH_ID);
  12. }
  13. }
  14. }

想想看,將將底層數據封裝成ContentProvider, 供應用程序調用, 標准的做法,就是如果對ContentProvider不是很熟悉的話,就有點麻煩了。

  • android數字證書具體應用機制
  • android數據存儲訪問機制
  • android可選API適用范圍
  • android調試程序正確進行方式
  • android根文件系統相關應用介紹

android數據庫操作3. 數據顯示

Cursor前面說過,是一個指向數據源的隨機迭代器顯示數據。將VIEw綁定到Cursor通常要設置這樣幾個參數。一個是每一行的樣式,稱作Row Layout,其實就是一個普通的Layout的XML文件。還有就是一個列和現實控件的對應關系。那個控件顯示哪個列的值,這是需要配置的。為了定制一個良好的數據顯示控件,最簡單你可以定制很PP的Row Layout,復雜一點就是可以重載綁定控件VIEw,或者是適配器ListAdapter。

使用Cursor動態綁定VIEw,每個表有一個_id列。

重新綁定Cursor, 並刷新頁面

  1. Cursor.requery().
  2. Adapter. notifyDataSetChanged();

想到一個問題,數據量非常大的時候,會不會出現內存不足的現象? Cursor是動態綁定VIEw. 深入去看android的代碼,CursorWindow 內部提供了Buffer, 供將數據庫的數據拷貝到該Buffer. 作為View顯示的緩沖區,其大小是有限的。根據V IEw 的變化重新填充Buffer.

android數據庫操作4. 導出數據庫

我們要查看手機的數據庫內容,每次都要從手機導出,然後sqlite 工具查看。其實用adb shell sqlite直接查看手機的數據庫, 在這拋磚引玉了,有志之人將其做一個工具,封裝sqlite 語句,便可以直接操作手機數據庫。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved