編輯: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; }
As described in the android documentation, the SDK level (integer) the phone is runni
本篇文章試圖解決這樣一個問題:如何在Android模擬器上訪問本地的Web應用? 例如,在你的開發機器上 啟動一個Tomcat服務,接著打開電腦上的浏覽器,默認情況下輸入
前面在Android RoboGuice 使用指南(1):概述 對應Roboguice做了簡要的介紹 ,之後介紹了Google Guice的基本用法,Roboguice是
Android中的本地窗口FramebufferNativewindow 1.1 Android中的本地窗口在OpenGL的學習過程中,我們不斷提及&ldquo