在database.close()之后重新编译compiledQuery

时间:2013-03-29 13:25:02

标签: android sqlite

我在android应用程序中使用SQLite,我需要执行一些复杂的insert语句(带子查询)。

我发现SQLiteStatement对此非常有用。它可以作为insert语句返回自动增加的主键多次编译和执行。

由于我正在SQLiteOpenHelper关闭我的SQLiteDatabase(已关闭包含Activity#onPause())并在Activity#onResume()重新打开,我会得到不同SQLiteDatabase实例时间。

我应该为每个SQLiteDatabase实例重新编译查询吗?

或者我可以在静态变量中缓存编译语句并成功将其用于不同的SQLiteDatabase个实例?

源代码告诉我,我应该(SQLiteStatement包含对SQLiteDatabase的引用)......但我不确定。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

SQLiteStatement个对象与特定的SQLiteDatabase对象相关联,并且不能移动到另一个对象(没有该功能,编译结果在任何其他数据库中都不起作用反正)。

您必须为新数据库对象创建新的语句对象。