Android 创建数据库和默认数据
我想在我的sqlite数据库中插入默认数据 这就是我所做的:Android 创建数据库和默认数据,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我想在我的sqlite数据库中插入默认数据 这就是我所做的: private static final String DATABASE_CREATE_position = "CREATE TABLE position(latitude VARCHAR(20), longitude VARCHAR(20), address VARCHAR(100))"; @Override public void onCreate(SQLiteDatabase db) { // Create the t
private static final String DATABASE_CREATE_position = "CREATE TABLE position(latitude VARCHAR(20), longitude VARCHAR(20), address VARCHAR(100))";
@Override
public void onCreate(SQLiteDatabase db) {
// Create the table
db.execSQL(DATABASE_CREATE_position);
ContentValues defaultPos = new ContentValues();
defaultPos.put("latitude", "40.604398");
defaultPos.put("longitude", "-3.709002");
defaultPos.put("address", "Avenida del parque ");
db.insert("position", null, defaultPos);
db.close();
}
但是数据库是空的,错误在哪里?解决方案:
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_position);
db.execSQL("insert into position (latitude,longitude,address) values (40.604398,-3.709002,'Avenida del parque ')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
....
解决方案:
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_position);
db.execSQL("insert into position (latitude,longitude,address) values (40.604398,-3.709002,'Avenida del parque ')");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
....
去掉onCreate()函数中的db.close(),它将插入我在您的测试代码中编写的测试代码。否则,它抛出一个非法状态异常并声明数据库未打开 去掉onCreate()函数中的db.close(),它将很好地插入我编写的测试代码。否则,它抛出一个非法状态异常并声明数据库未打开