在之前的工作中,遇到SQLite數據庫的相關代碼,基本是看着就有些暈,花了一天時間,學習加鞏固,讓我對SQLite數據庫,事務處理(轉賬),ContentProvider有了很深的認識,自己動手寫了多便,代碼結構一次比一次清晰。工作時,負責搭建項目結構的人,經常趁着改版,優化項目結構,相信是每一次做完後,都會對代碼有一些優化的想法,代碼的優化本就是循序漸進的過程。
首先看下以下兩個應用中的代碼結構:
1、ContentProvider提供共享數據應用
2、用ContentResolver訪問共享的數據,並增刪改查
SQLite數據庫中主要是通過執行sql語句,來完成表的創建及數據的增刪改查,我在TestDB.java中都已經有測試通過。
在執行sql語句時,有兩種方式(以delete爲例,刪除person表中id爲1的用戶)
方式1:
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL(delete from person where id = ?, new Object[]{1});
方式2:
SQLiteDatabase db = helper.getWritableDatabase();
db.delete(“person”, “id = ?”, new String[]{id + ””});
方式2是安卓系統系統的數據庫刪除方式,它已經幫我們拼裝好了要執行的sql語句,我們只用將變量的值往裏添加即可。我覺得方式2非常好用,因此在例子中均使用方式2來示範。
ContentProvider提供的數據,在其他應用中用ContentResolver來訪問,並且其Uri必須以contnet://開頭,不然在訪問的過程中會一直出現錯誤的參數類型的崩潰。
因在做訪問本地音樂庫時已經使用過ContentResolver,因此學習起來非常容易。