SQLite数据库外部附加

时间:2012-05-25 08:11:04

标签: android android-layout sqlite

我有一个扩展名为.s3db的数据库文件,它是使用SQLite Administrator创建的。我想用我的android应用程序连接到数据库。我已将数据库放在assets文件夹中。打开数据库需要编写什么代码?

2 个答案:

答案 0 :(得分:0)

以下是一些完整的教程,其中显示了访问存储在资产文件夹中的数据库的分步过程:


use-existing-sqlite-database-in-android


using-your-own-sqlite-database


BTW如果你想使用手动创建的数据库(将在sdcard中),只需访问它:

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

答案 1 :(得分:0)

如前所述,结果是,在安装软件之后,我们应该将assets文件夹中的数据库复制到/data/data/your_package/文件夹,然后轻松使用它。为此,我使用下面的代码在运行时复制数据库。

    if (!new File("/data/data/" + this.getPackageName()
            + "/database.sqlite").exists()) {
        try {
            FileOutputStream out = new FileOutputStream("data/data/"
                    + this.getPackageName() + "/database.sqlite");
            InputStream in = getAssets().open("databases/dic.db");

            byte[] buffer = new byte[1024];
            int readBytes = 0;

            while ((readBytes = in.read(buffer)) != -1)
                out.write(buffer, 0, readBytes);

            in.close();
            out.close();
        } catch (IOException e) {
        }
    }

您应该将此代码放在MainActivity的onCreate函数中。您可以在整个项目中轻松使用自己的数据库。要访问您的数据库,您可以使用以下代码:

SQLiteDatabase sqliteDB = SQLiteDatabase.openOrCreateDatabase(
                "/data/data/" + this.getPackageName() + "/database.sqlite",
                null);

Cursor cursor = sqliteDB.rawQuery("SELECT * FROM table", null); // example of query

享受它:)