我的代码是whit sq-lite,但有一些错误。我已经工作了几天,但它不起作用。 我编写了MySQLiteHelper类(扩展了SQLiteOpenHelper)。
public class MySQLiteHelper extends SQLiteOpenHelper {
public static final String CLASSIFICATION = "CREATE TABLE IF NOT EXISTS classification(classification_id Integer primary key AUTOINCREMENT,classify VARCHAR)";
public static final String ACCOUNT = "CREATE TABLE IF NOT EXISTS account(account_id Integer primary key AUTOINCREMENT,username VARCHAR,password VARCHAR,classification_id Integer REFERENCES classification(classification_id))";
public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
super(context,name,factory,version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CLASSIFICATION);
db.execSQL(ACCOUNT);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我编写了MySQLiteDatabase类。
public class MySQLiteDatabase {
private static MySQLiteDatabase instance;
private SQLiteDatabase sqLiteDatabase;
private MySQLiteDatabase(Context context){
MySQLiteHelper helper = new MySQLiteHelper(context,"test.db",null,1);
sqLiteDatabase = helper.getWritableDatabase();
sqLiteDatabase.execSQL("INSERT INTO classification(classification_id,classify) VALUES(1,'QQ')");
}
public static MySQLiteDatabase getInstance(Context context){
if(null == instance){
instance = new MySQLiteDatabase(context);
}
return instance;
}
}
但我在SampleActivity中的onCreate()中编写代码。
MySQLiteDatabase my = MySQLiteDatabase.getInstance(SampleActivity.this);
另一方面,我在Sample Activity中的onCreate()中编写了以下代码.MySQLiteHelper中的onCreate()执行。
MySQLiteHelper helper = new MySQLiteHelper(context,"test.db",null,1);
我尽力解决,但我不能。请帮助我。
答案 0 :(得分:0)
数据库助手onCreate()
仅在
您正在呼叫getWritableDatabase()
或getReadableDatabase()
,
数据库文件不存在。
可能是数据库文件已存在。 Unisntall你的应用程序或清除其数据,以摆脱它。