Как подключить базу данных SQLite (расширение SQLite Firefox) к приложению Android, для Android 2.1 для запроса и вставки в базу - PullRequest
0 голосов
/ 15 февраля 2011

Я работаю над приложением Android, в котором некоторые функции, которые должны вводить пользователи: регистрация, определение местоположения больницы, поиск сообщений (отправленных с помощью смс зарегистрированным пользователям) и возможность планировать и назначать встречи.* Пока что все действия выполнены.Однако мне нужно знать, как подключиться к базе данных, чтобы прочитать и сохранить эти данные.Я использую Android 2.1, Mac OS X и расширение SQLite Firefox.

Это код, который я должен подключить к базе данных SQLite, что я делаю неправильно?

package com.bitnuts.imom;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DbManager extends SQLiteOpenHelper {

    private static final String DB_NAME = "iMom.sqlite";
    private static final String DB_PATH = "/data/data/com.bitnuts.imom/databases/";
    private static final Integer DB_VERSION = 1;
    private static final String TAG = "DbManager";
    private final Context context;
    private SQLiteDatabase db;
    private DbManager dbManager;

    public DbManager(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        this.context = context;
    }

    public DbManager open() {
        dbManager = new DbManager(context);
        db = dbManager.getWritableDatabase();
        return this;
    }

    @Override
    public void onCreate(SQLiteDatabase arg0) {

        createNewDatabase();
    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

        // TODO Auto-generated method stub
    }

    public void createNewDatabase() {
        InputStream assetsDB = null;
        try {
            assetsDB = context.getAssets().open(DB_NAME);
            OutputStream dbOut = new FileOutputStream(DB_PATH + DB_NAME);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = assetsDB.read(buffer)) > 0) {
                dbOut.write(buffer, 0, length);
            }

            dbOut.flush();
            dbOut.close();
            assetsDB.close();
        }
        catch (IOException e) {
        }
    }
}

Ответы [ 3 ]

2 голосов
/ 15 февраля 2011

Вы не можете использовать базу данных SQLite непосредственно в вашем приложении. Вам нужно внести некоторые изменения. Например, таблица android_metadata и т. Д. Пост блога Использование собственной базы данных SQLite в приложениях Android поможет вам.

2 голосов
/ 15 февраля 2011

На Android нет драйвера JDBC, поэтому вы не можете подключиться к сетевым базам данных (SQLite или другим): Android - доступ к онлайн-базе данных SQlite

Android поставляется со встроенной базой данных SQLite, но она доступна только на устройстве.

Кроме того, прочитайте , почему прямое подключение к базам данных с мобильных устройств не рекомендуется .

Если вам необходимо хранить / передавать некоторые данные в сети, то обычным способом является создание на сервере веб-службы, к которой могут подключаться все устройства. Очень популярным типом веб-сервиса является REST , который довольно прост в настройке в Java.

0 голосов
/ 19 августа 2013

Предлагаю использовать ORMLite для Android.Реализация становится намного проще с этим.Вот документация по началу работы .

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