在android中使用外部数据库

时间:2011-03-19 04:52:03

标签: android android-sdk-2.1

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

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

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

Using your own SQLite database in Android applications中包含的信息应完全符合您的要求。

你应该注意到,虽然这并不是很困难,但它不仅仅是一组在应用程序之外完成的简单命令。

答案 2 :(得分:0)

“在Android应用程序中使用自己的SQLite数据库”中包含的信息对于U非常有用,如果U的db大小超过1024字节,则首先将db分成小部分并复制应用程序中的所有小dbs 。

答案 3 :(得分:0)

使用android-sqlite-asset-helper,在安装时填写(初始化)应用数据库

如果要将数据库的默认文件夹更改为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 */
    }

}