我在我的应用程序中使用SqlLite非常困难;
我已经设置了一个扩展自SQLiteOpenHelper的数据库帮助程序类。
public class DatabaseHelper extends SQLiteOpenHelper {
在OnCreate中,我正在创建约6个表:
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE myTestTable (Id INTEGER PRIMARY KEY , "
+ "info TEXT," +
+ "TopLeft TEXT")); <-- example insert
}
当我的应用程序启动时,我正在解析一些xml并将数据输入表中,我已经检查了数据库,所有内容都在那里,并且我的表已经正确创建。但是当我调用数据时,它就消失了!在dbhelper类中有许多不同的查询,在每个活动中重新初始化该类,以便我可以访问类中的函数。我认为这不是正确的方法,因为它会再次运行我的oncreate并清除所有表格(或者至少在我尝试从中调用数据之后,它会出现这种情况,因为它是空的!)。我原本认为oncreate只运行一次,但显然情况并非如此,因为它似乎每次都在重新创建我的数据库并清除我的数据!你应该在哪里初始化dbhelper类,并如何停止重新创建表格?即使应用程序关闭,我也需要数据持久存在!我很困惑!如果这没有意义,请具体提问我如何澄清它!更新:我发现可以添加
CREATE TABLE IF NOT EXISTS
这会阻止它重新创建表,但每次调用oncreate似乎仍不太对。