我在android应用程序中使用SQLite,我需要执行一些复杂的insert语句(带子查询)。
我发现SQLiteStatement
对此非常有用。它可以作为insert语句返回自动增加的主键多次编译和执行。
由于我正在SQLiteOpenHelper
关闭我的SQLiteDatabase
(已关闭包含Activity#onPause()
)并在Activity#onResume()
重新打开,我会得到不同SQLiteDatabase
实例时间。
我应该为每个SQLiteDatabase
实例重新编译查询吗?
或者我可以在静态变量中缓存编译语句并成功将其用于不同的SQLiteDatabase
个实例?
源代码告诉我,我应该(SQLiteStatement
包含对SQLiteDatabase
的引用)......但我不确定。
非常感谢任何帮助。
答案 0 :(得分:0)
SQLiteStatement
个对象与特定的SQLiteDatabase
对象相关联,并且不能移动到另一个对象(没有该功能,编译结果在任何其他数据库中都不起作用反正)。
您必须为新数据库对象创建新的语句对象。