我開發了一個小的java.lang.reflect.InvocationHandler,它攔截方法調用(來自json webservice)並將結果緩存到本地SQLite數據庫。如果沒有互聯網連接結果從本地緩存讀取。android通用SQLite數據庫
一切工作正常;我的問題是以下幾點:
截獲的每個方法都可以返回一個不同的實體,並且我使用反映每個實體在不同的表上。我不知道我需要創建的所有表,所以每次創建一個「創建表如果不存在{ENTITY_NAME}」的SQLiteOpenHelper時,每當我將數據庫版本增加1時,都會調用onUpgrade方法。
這適用於開發環境,但我不喜歡那樣。
有人可以推薦更好的解決方案來用新表更新數據庫嗎?
謝謝
可以序列的實體爲一個字符串
mYourDbHelper.getWritableDatabase().execSQL("CREATE TABLE ....")
?用這種方法你可以有一個帶有類型列和數據序列化的表。 – Ran 2012-07-06 15:54:59我可以做,但我想保存單個實體,而不是完整的方法結果,所以如果我與互聯網連接調用service.getAllEmployees()對象緩存,然後service.getEmployeeById(「1」)脫機我可以讀取來自緩存的對象。 – Alessandro 2012-07-06 16:05:23