Android - правильное место для размещения моей базы данных Sqlite3 в Eclipse? - PullRequest
0 голосов
/ 11 марта 2012

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

Этот парень говорит о пути к системе Android:

// Системный путь Android к базе данных вашего приложения по умолчанию.
закрытая статическая строка DB_PATH = "/ data / data / YOUR_PACKAGE / database /";

и здесь: DB_PATH = "/data/data/com.android.example/databases/" во многих других ссылках, касающихся баз данных sqlite.

Проблема в том, что Eclipse (на Mac OSX 10.7) не создал каталог данных, а на моем Motorola Xoom (на котором установлен Android 4.0.3 - сэндвич с мороженым) я не могу определить, какой у него системный путь по умолчанию. Я не вижу ничего, ссылающегося на / data / data / ... с помощью файлового менеджера Astro.

Поскольку я использую Mac, мне пришлось использовать приложение для файловой системы Android, чтобы перенести мои apk-файлы из моего рабочего пространства eclipse в motorola xoom. Я предположил, что один из моих вопросов должен быть - где было бы правильное место, чтобы поставить это, или это имеет значение?

Я уже загрузил браузер базы данных Sqlite и заполнил свою базу данных, о чем говорит ссылка выше. У меня нет никаких первичных ключей. я скопировал файл .db в папку с активами в моем проекте - также как указано в ссылке.

Кроме того, поскольку моя база данных уже создана с таблицами, на самом деле все, что мне нужно сделать (я полагаю), это скопировать таблицы в этот каталог данных, о котором все всегда упоминают, и тогда я смогу делать вставки / обновления / выборки и т. Д. И т. Д. ?

пока мой код:

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 голосов
/ 11 марта 2012

Проблема в том, что eclipse (на Mac OSX 10.7) не создал каталог данных

Eclipse не создает каталог /data на устройстве.Это там с завода.

и на моем Motorola Xoom (на котором установлен Android 4.0.3 - сэндвич с мороженым) я не могу определить, какой путь по умолчанию используется в системе.

В Android нет понятия "системный путь по умолчанию".

Поскольку я использую Mac, мне приходилось использовать приложение для файловой системы Android для передачи файлов apk измое рабочее пространство затмения на Motorola Xoom.

Большинство разработчиков Android просто запускают приложение из Eclipse.

Кроме того, поскольку моя база данных уже создана с таблицами, на самом деле все, что мне нужносделать (я предполагаю) скопировать таблицы в этот каталог данных, о котором все всегда упоминают, и тогда я смогу делать вставки / обновления / выборки и т. д. и т. д.?

Использование SQLiteAssetHelper, которая дает вам инструкции по упаковке базы данных в Eclipse, а затем распакует ее для вас в нужном месте во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...