0

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

4

2 回答 2

0

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


使用现有的sqlite-database-in-android


使用你自己的 sqlite 数据库


顺便说一句,如果您想使用手动创建的数据库(将在 sdcard 中),只需像这样访问它:

File dbfile = new File("/sdcard/Your_db_File" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null); 
于 2012-05-25T08:39:56.943 回答
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

好好享受 :)

于 2012-05-25T09:12:10.190 回答