如何通过从SQL文件导入在Android中创建SQLite数据库?

时间:2011-06-21 23:59:53

标签: android sqlite import

我有一个包含SQL CREATE TABLEINSERT语句的大文本文件。如何使用SQLiteOpenHelper onCreate方法导入此文件?

或者,是否有直接使用二进制数据库文件的方法?

我需要它与Android 1.6兼容。

4 个答案:

答案 0 :(得分:6)

我必须解决同样的问题。无法找到直接的方法,因此我将文件放入res / raw目录并使用openRawResource在其上获取InputStream。然后我读取行,直到一个以;结束。然后我将语句传递给sqlite数据库。

希望其他人有更好的方式,但我想我会添加我最终做的方式。

答案 1 :(得分:5)

按照Steve Prentice的回答。那是我的实施:

res / raw

中的

mydb.sql文件

CREATE TABLE table1(col1 INTEGER PRIMARY KEY, col2 TEXT);
CREATE TABLE table2(col1 INTEGER PRIMARY KEY, col2 TEXT, col3 INTEGER);

MyClass.java

    InputStream inputStream = context.getResources().openRawResource(R.raw.mydb);

    String queries = "";
    try {
        queries = IOUtils.toString(inputStream);
    } catch (IOException e) {
        Util.logException(e);
    }

    for (String query : queries.split(";")) {
        db.execSQL(query);
    }

答案 2 :(得分:4)

在SQLiteOpenHelper onCreate()方法中,您只能使用db.execSQL(...),但这取决于您的“文本文件”的结构(以及它的大小)。

或者,您可以使用您的应用程序“发送”SQLite数据库 - 请参阅此链接以提供一些想法......

Using your own SQLite database in Android applications

答案 3 :(得分:0)

导入自己的sqlite db文件的问题是,您必须确保您创建的文件的引擎版本与安装db的Android设备上的引擎版本相匹配。通过运行SQL脚本文件,您可以确保使用Android设备上实际安装的引擎创建数据库。