在android中使用外部数据库

在android中使用外部数据库,android,android-sdk-2.1,Android,Android Sdk 2.1,我已经使用Sqlite浏览器创建了数据库AddressBookMaster.db,并在提到的数据库中创建了表AddressBook。但现在的问题是,我想在我的应用程序中使用这个.db文件,所以我应该把这个db文件放在哪里,以及如何在应用程序中获取 是否有任何示例或教程可以帮助我?中包含的信息应该正好符合您的要求 您应该注意到,虽然这并不困难,但它不仅仅是在应用程序之外执行的一组琐碎命令。中包含的信息应该完全符合您的要求 您应该注意到,虽然这并不十分困难,但它不仅仅是在应用程序之外执行的一组琐碎命

我已经使用Sqlite浏览器创建了数据库AddressBookMaster.db,并在提到的数据库中创建了表AddressBook。但现在的问题是,我想在我的应用程序中使用这个.db文件,所以我应该把这个db文件放在哪里,以及如何在应用程序中获取


是否有任何示例或教程可以帮助我?

中包含的信息应该正好符合您的要求


您应该注意到,虽然这并不困难,但它不仅仅是在应用程序之外执行的一组琐碎命令。

中包含的信息应该完全符合您的要求


您应该注意到,虽然这并不十分困难,但它不仅仅是在应用程序之外执行的一组琐碎命令。

在Android应用程序中使用您自己的SQLite数据库所包含的信息对您来说非常有用,如果您的数据库大小超过1024字节,则首先将数据库拆分为小部分,然后将所有小型数据库复制到应用程序目录中

在Android应用程序中使用您自己的SQLite数据库所包含的信息对您来说非常有用,如果您的数据库大小超过1024字节,则首先将数据库拆分为小部分,并将所有小数据库复制到您的应用程序目录中

您也可以将数据库文件放入SD卡中。使用以下代码使用SD卡中的数据库

File dbfile = new File("/sdcard/Your_db_File.db" ); 
SQLiteDatabase  db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);

您也可以将数据库文件放入SD卡中。使用以下代码使用SD卡中的数据库

File dbfile = new File("/sdcard/Your_db_File.db" ); 
SQLiteDatabase  db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
使用,在安装时填充并初始化应用程序的数据库

如果要将数据库的默认文件夹更改为sdcard:

public class MyApplication extends Application {

    @Override
    public void onCreate() {

        SQLiteOpenHelper helper = ..
        SQLiteDatabase db = helper.getWritableDatabase()
    }


    @Override
    public File getDatabasePath(String name) {
        return new File(getDatabasePathString(name));
    }

    @Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) {
        return super.openOrCreateDatabase(getDatabasePathString(name), mode, factory);
    }

    @Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {
        return super.openOrCreateDatabase(getDatabasePathString(name), mode, factory, errorHandler);
    }

    /*Put the default folder to store database of your application / or activity here */
    public String getDatabasePathString(String name) {
        return getExternalCacheDir()+ "/" + name+".db";  /* /storage/emulated/0/Android/data/com.my.app/cache */
    }

}
使用,在安装时填充并初始化应用程序的数据库

如果要将数据库的默认文件夹更改为sdcard:

public class MyApplication extends Application {

    @Override
    public void onCreate() {

        SQLiteOpenHelper helper = ..
        SQLiteDatabase db = helper.getWritableDatabase()
    }


    @Override
    public File getDatabasePath(String name) {
        return new File(getDatabasePathString(name));
    }

    @Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) {
        return super.openOrCreateDatabase(getDatabasePathString(name), mode, factory);
    }

    @Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {
        return super.openOrCreateDatabase(getDatabasePathString(name), mode, factory, errorHandler);
    }

    /*Put the default folder to store database of your application / or activity here */
    public String getDatabasePathString(String name) {
        return getExternalCacheDir()+ "/" + name+".db";  /* /storage/emulated/0/Android/data/com.my.app/cache */
    }

}

谢谢您的回答,但问题是如何分割数据库?Nandlal virani form S.K.Patel Institute我说的对吗?谢谢你的回答,但问题是我如何分割db?Nandlal virani form S.K.Patel Institute我说的对吗?请注意,您需要包括写入/读取外部存储的功能!!我花了数小时调试未知错误以发现它。请注意,您需要包括写入/读取外部存储的步骤!!我花了几个小时调试未知的错误来发现这一点。