2012-07-06 126 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