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

rid*_*rid 8 sqlite import android

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

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

我需要它与Android 1.6兼容.

Ste*_*ice 6

我不得不解决同样的问题.找不到直接的方法,所以我将文件放入res/raw目录并用于openRawResource获取InputStream.然后我读了一行直到一个结束了;.然后我将语句传递给sqlite数据库.

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


And*_*son 5

按照史蒂夫·普伦蒂斯的回答。那是我的实现:

res / raw中的mydb.sql文件

CREATE TABLE table1(col1 INTEGER PRIMARY KEY, col2 TEXT);
CREATE TABLE table2(col1 INTEGER PRIMARY KEY, col2 TEXT, col3 INTEGER);
Run Code Online (Sandbox Code Playgroud)

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);
    }
Run Code Online (Sandbox Code Playgroud)


Squ*_*onk 4

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

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

在 Android 应用程序中使用您自己的 SQLite 数据库