Android - 将我的Sqlite3数据库放入Eclipse的适当位置?

时间:2012-03-11 01:43:48

标签: android sqlite sqliteopenhelper

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

这家伙谈到了android系统路径:

  

// Android应用程序数据库的默认系统路径   private static String DB_PATH =“/ data / data / YOUR_PACKAGE / databases /”;

和这里:关于sqlite数据库的许多其他链接中的DB_PATH =“/ data / data / com.android.example / databases /”。

问题是,eclipse(在mac osx 10.7上)没有创建数据目录并且在我的motorola xoom(它有Android 4.0.3 - 冰淇淋三明治)上我无法确定它的默认系统路径是什么。我没有看到任何引用/ data / data / ...使用Astro文件管理器。

由于我正在使用mac,我不得不使用android文件系统应用程序将我的apk文件从我的eclipse工作区传输到motorola xoom。我认为我的一个问题应该是 - 在哪里适当放置这个或者做的事情是重要的?

我已经下载了Sqlite数据库浏览器并填写了我的数据库,如上面的链接所述。我没有任何主键。我已将.db文件复制到项目中的assets文件夹中 - 也就是链接状态。

此外,由于我的数据库已经创建了表,我真的需要做的(我猜)是将表复制到每个人总是提到的数据目录,然后我应该能够进行插入/更新/选择等等?

到目前为止我的代码:

public class DatabaseHelper extends SQLiteOpenHelper {

private Context myDbContext;
private static String dbName = "restaurant";

public DatabaseHelper(Context context){
    super(context, dbName, null, 1);
    this.myDbContext = context;

}

@Override
public void onCreate(SQLiteDatabase db) {

      //need to take input from local database and copy it 
      //but where do i copy the information to? what path should i use?

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(DatabaseHelper.class.getName(), "upgrading database/changing database which will remove all old data!");
    db.execSQL("drop table if exists menu");
    db.execSQL("drop table if exists items");
    db.execSQL("drop table if exists server");
    onCreate(db);
}

}

1 个答案:

答案 0 :(得分:0)

  

问题是,eclipse(在mac osx 10.7上)没有创建数据目录

Eclipse不会在设备上创建/data目录。它来自工厂。

  

和我的motorola xoom(有Android 4.0.3 - 冰淇淋三明治)我无法确定它的默认系统路径。

Android中没有“默认系统路径”的概念。

  

由于我正在使用mac,我必须使用android文件系统应用程序将我的apk文件从我的eclipse工作区传输到motorola xoom。

大多数Android开发人员只是从Eclipse运行应用程序。

  

此外,由于我的数据库已经创建了表,我真的需要做的(我猜)是将表复制到每个人总是提到的数据目录,然后我应该能够进行插入/更新/选择等等?

使用SQLiteAssetHelper,它为您提供了在Eclipse中打包数据库的说明,然后在运行时在适当的位置为您解压缩。