2012-07-06 109 views
-1

我開發了一個小的java.lang.reflect.InvocationHandler,它攔截方法調用(來自json webservice)並將結果緩存到本地SQLite數據庫。如果沒有互聯網連接結果從本地緩存讀取。android通用SQLite數據庫

一切工作正常;我的問題是以下幾點:

截獲的每個方法都可以返回一個不同的實體,並且我使用反映每個實體在不同的表上。我不知道我需要創建的所有表,所以每次創建一個「創建表如果不存在{ENTITY_NAME}」的SQLiteOpenHelper時,每當我將數據庫版本增加1時,都會調用onUpgrade方法。

這適用於開發環境,但我不喜歡那樣。

有人可以推薦更好的解決方案來用新表更新數據庫嗎?

謝謝

+1

可以序列的實體爲一個字符串mYourDbHelper.getWritableDatabase().execSQL("CREATE TABLE ....")?用這種方法你可以有一個帶有類型列和數據序列化的表。 – Ran 2012-07-06 15:54:59

+0

我可以做,但我想保存單個實體,而不是完整的方法結果,所以如果我與互聯網連接調用service.getAllEmployees()對象緩存,然後service.getEmployeeById(「1」)脫機我可以讀取來自緩存的對象。 – Alessandro 2012-07-06 16:05:23

回答

0

嘗試從那裏你需要創建另一個表

+0

謝謝,我沒想過! – Alessandro 2012-07-06 16:39:22