Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> android中傻瓜式建立數據庫及高效數據庫操作代碼的編寫

android中傻瓜式建立數據庫及高效數據庫操作代碼的編寫

編輯:Android開發教程

初學者在學android的時候,看到書上的sqlite數據庫編程怎麼有點復雜。

初學階段的難點:

建立數據庫表字段(field)數據類型(text,interge)選擇較多,考慮較多。

在activity中數據更新插入要考慮的約束條件好多

老是訪問數據庫的數據,每次都要在activity中聲明一個cursor並且通過一大堆代碼來獲取cursor感覺有點繁瑣。

對於上述的難點解決方式如下

1.數據類型都用text(除了id編號)

2.在activity中無論插入或更新都只用DB文件中同一個函數實現,並且不需要在activity中考慮任何因素(是否數據表中已經有當前要插入或更新的數據)

3.在DB文件中 寫一個返回值為cursor的函數(返回的cursor為常用的cursor)

要知道的一些原理

1) db.update(TABLE_NAME, cv, where, whereValues)如果更新數據失敗返回0

2)db.update(TABLE_NAME, cv, where, whereValues)更新表中符合 where=whereValue的所有值

3)假如要查詢的值或要更新的值有多個關鍵字約束,那麼可以安如下填寫where 跟where

String where = field1+"=? and " + field2 + "=? and " + field3  + "=?";
String[] whereValues = {string1, string2, string3};
//Cursor cursor = db.query(HSTRYBUYTABLE, null, where, whereValues, null, null, null);
//db.update(HSTRYBUYTABLE, cv, where, whereValues);

4)return db.insert(HSTRYBUYTABLE, null, cv)只要調用就會在數據庫中插入數據

方案:

1)構建數據庫表時請默認“自動編號”,並且其他字段數據類型都用text,(java中string類型容易轉換成其他數據類型)

public void onCreate(SQLiteDatabase db) {
String sql = "create table "+YOUTABLENAME+" ("
+TABLE_ID+" integer primary key autoincrement, "
+TABLE_FIELD1+" text, "
+TABLE_FIELD2+" text, "
+TABLE_FIELD3+" text, "
+TABLE_FIELD4+" text )";
db.execSQL(sql);
}

2)在HelpDB中寫個如下函數替代insrtDB 跟 updataDB,以後在其他地方直接拿來用就是了,別想那麼多,直接能用這個函數關鍵是update函數中的where語句寫的正確恰當(這裡的正確看工程需求)。

public int operateHProduct(String string1, String string2, Product string3){
int i = 0;
if(updateHProduct(string1, string2, string3) == 0 ){//嘗試更新數據
i = 1;
insertHProduct(string1, string2, string3);
}
return i;
}

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