在android Activity(Android SQLite数据库)中导入.SQLite文件

时间:2012-09-05 17:42:35

标签: android database sqlite

我已成功创建数据库程序。 基本上我正在处理一个复杂的小数据库,所以需要在SQLITE MANAGER中创建数据库并使用我的android代码导入/链接该数据库。 请建议我做这个教程。或任何其他帮助我的代码。 感谢

这是我现在的数据库代码我要导入mYdataBase.sqlite文件。

public class DatabaseHandler extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "contactsManager";
    private static final String TABLE_CONTACTS = "contacts";
    private static final String KEY_ID = "id";
    private static final String KEY_NAME = "name";
    private static final String KEY_PH_NO = "phone_number";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // Creating Tables
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_PH_NO + " TEXT" + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }

    // Upgrading database
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

        // Create tables again
        onCreate(db);
    }

2 个答案:

答案 0 :(得分:5)

如果你想从资产文件夹导入数据库文件而不是下面的代码可以帮助你

void checkDB() throws Exception {
        try {
            SQLiteDatabase dbe = SQLiteDatabase
                    .openDatabase(
                            "/data/data/com.yourpackagename/databases/yourfile.sqlite",
                            null, 0);
            Log.d("opendb", "EXIST");
            dbe.close();
        } catch (Exception e) {

            AssetManager am = getApplicationContext().getAssets();
            OutputStream os = new FileOutputStream(
                    "/data/data/com.yourpackagename/databases/yourfile.sqlite");
            byte[] b = new byte[100];

            int r;
            InputStream is = am.open("yourfile.sqlite");
            while ((r = is.read(b)) != -1) {
                os.write(b, 0, r);
            }
            Log.i("DATABASE_HELPER", "Copying the database ");
            is.close();
            os.close();
        }

答案 1 :(得分:0)

尝试使用此http://codinglookseasy.blogspot.in/2012/08/sqlite-database.html。 这是在应用程序中使用数据库的示例。希望这有助于你