如何从外部文件填充我的SQLitedatabase?

时间:2013-07-25 20:17:48

标签: android database sqlite

我在我的Android应用程序中创建了我的数据库,但现在我必须用一些数据预先填充它。问题是它有很多数据要放在数据库中。有没有办法从文件.txt或外部文件.db?

预先填充数据库

4 个答案:

答案 0 :(得分:2)

您可以将数据附加到应用程序(或从www下载),就像scv文件一样,然后解析它们并插入db helper的OnCreate方法。

public void onCreate(SQLiteDatabase database) {
        // create database file
        database.execSQL(DB_CREATE);

        // load data
        AssetManager assetManager = context.getAssets();
        try {
                InputStream inputStream = assetManager.open("radars_test.csv");
                InputStreamReader streamReader = new InputStreamReader(inputStream);
                BufferedReader bufferedReader = new BufferedReader(streamReader);
                String line;
                String[] values;
                while ((line = bufferedReader.readLine()) != null) {
                        values = line.split(";");
                        String speedLimit = (line.length() == 3 ? values[2] : "0");
                        String insertCommand = String
                                        .format("insert into geofences(longitude, latitude, speed_limit, type, radius, description) values(\"%s\", \"%s\", %s, 0, 200, \"%s\")",
                                                        values[0], values[1], speedLimit, values[3]);
                        database.execSQL(insertCommand);

                }

        } catch (IOException e) {
                Log.e("TBCAE", "Failed to open data input file");
                e.printStackTrace();
        }
}

.csv文件必须放在资产目录

答案 1 :(得分:0)

你没有说出你实际拥有的格式,但是很可能。使用destkop SQLite编辑器并导入CSV文件(例如)。大多数SQLite编辑都支持这一点。

然后只需将.db3文件复制到您的项目中即可。

我用这个:

http://sqlitebrowser.sourceforge.net/

另请阅读此http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

答案 2 :(得分:0)

这里很棒的帖子。我把它书签了很长时间。

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

我认为它会回答你所有的问题。

答案 3 :(得分:0)

最好的方法是使用像SQLite Manager for Firefox这样的经理自己创建数据库。此管理器允许您将包含数据的Excel文件(实际上是CSV)导入数据库。之后,您应该将数据库存储在应用程序的原始文件夹中。然后,您应该创建一个DataAdapter以使用游标检索数据。如果您想了解更多详情,请不要犹豫。祝好运。