我想在我的应用程序中使用 SQLite 数据库。我创建了一个扩展类SQLiteOpenHelper
。当我第一次编写代码时,数据库出现在/data/data/(package)/database. The package name was my reverse domain + /mobile/app
. 然后,我在反向项目中创建了一个单独的包domain + /mobile/data
,并将我的 Database 类移到其中。
/data/data/(original package)/database
在我重新加载(不使用快照)我的模拟器之前一直存在。
自那时候起:
/data/data/(original package)/
已创建但没有数据库目录,/data/data/(data package)/
不在文件系统上创建。我努力了:
将我的数据库类移回原始包
创建新版本的模拟器
在模拟器中卸载应用程序,然后重新安装。
增加数据库版本变量
在我的应用程序的其他部分中评论与数据库类关联的代码。
这是我的数据库类代码。
public class BusinessOpsDatabase extends SQLiteOpenHelper {
private static final String TAG = "BusinessOpsDatabase";
private static final int DB_VERSION = 1;
private static final String DB_NAME = "bss_business_ops";
// country table variables
public static final String TABLE_COUNTRY = "country";
public static final String ID = "_ID";
public static final String COL_COUNTRY_NAME = "country_name";
private static final String CREATE_TABLE_COUNTRY = "create table "
+ TABLE_COUNTRY + " (" + ID
+ " integer primary key autoincrement, " + COL_COUNTRY_NAME
+ " text not null);";
private static final String COUNTRY_SCHEMA = CREATE_TABLE_COUNTRY;
public BusinessOpsDatabase(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// create tables
db.execSQL(COUNTRY_SCHEMA);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// drop country
Log.w(TAG, "Upgrading database. Existing contents will be lost. ["
+ oldVersion + "]->[" + newVersion + "]");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_COUNTRY);
// create tables
onCreate(db);
}
}