如何将 SQLite 数据库(SQLite Firefox 扩展)连接到 Android 应用程序,以便 android 2.1 查询并插入到数据库 [英] How do I connect an SQLite database (SQLite Firefox extension) to an Android application, for android 2.1 to query and insert to the database

查看:24
本文介绍了如何将 SQLite 数据库(SQLite Firefox 扩展)连接到 Android 应用程序,以便 android 2.1 查询并插入到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个 Android 应用程序,其中一些用户应该输入的功能:注册、定位医院位置、搜索消息(通过短信发送给注册用户)以及可以安排和预约.

I am working on an Android application, where some of the functions that users should input: register, locate hospital location, search for messages (sent via sms to registered users) and can schedule and make appointments.

到此为止,所有的活动都完成了.但是,我需要知道如何连接到数据库才能读取和存储这些数据.我使用的是 Android 2.1、Mac OS X 和 SQLite Firefox 扩展.

So far, all the activities are done. However, I need to know how to connect to the database in order to read and store this data. I am using Android 2.1, Mac OS X, and the SQLite Firefox extension.

这是我必须连接到 SQLite 数据库的代码,我做错了什么?

This is the code I have to connect to the SQLite database, what am I doing wrong?

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) {
        }
    }
}

推荐答案

您不能直接在您的应用程序中使用 SQLite 数据库.您需要进行一些修改.如android_metadata表等.博文在 Android 应用程序中使用您自己的 SQLite 数据库 会对您有所帮助.

You cannot use the SQLite database directly in your application. You need to make some modifications. Such as the android_metadata table, etc. The blog post Using your own SQLite database in Android applications will help you.

这篇关于如何将 SQLite 数据库(SQLite Firefox 扩展)连接到 Android 应用程序,以便 android 2.1 查询并插入到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆