將SqLite數據庫中的數據共享給其他應用增刪改查

    在之前的工作中,遇到SQLite數據庫的相關代碼,基本是看着就有些暈,花了一天時間,學習加鞏固,讓我對SQLite數據庫,事務處理(轉賬),ContentProvider有了很深的認識,自己動手寫了多便,代碼結構一次比一次清晰。工作時,負責搭建項目結構的人,經常趁着改版,優化項目結構,相信是每一次做完後,都會對代碼有一些優化的想法,代碼的優化本就是循序漸進的過程。

    首先看下以下兩個應用中的代碼結構:

            1、ContentProvider提供共享數據應用

 

            2、ContentResolver訪問共享的數據,並增刪改查

 

          SQLite數據庫中主要是通過執行sql語句,來完成表的創建及數據的增刪改查,我在TestDB.java中都已經有測試通過。

   在執行sql語句時,有兩種方式(delete爲例,刪除person表中id1的用戶)

    方式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,因此學習起來非常容易

    直接下載demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章