0

我想在我的应用程序中使用 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);

}
}
4

2 回答 2

0

http://www.techotopia.com/index.php/An_Android_SQLite_Database_Tutorial

使用上面的链接学习。你可以解决所有关于 sqlite 的问题

于 2013-07-30T10:28:30.513 回答
0

我设法通过将以下代码添加到数据库构造函数来解决问题。

SQLiteDatabase db = getWritableDatabase();
于 2013-07-30T10:20:54.860 回答